0

我有一个淘汰模板(使用 koExternaltemplateEngine_all.js),我想要一个指向控制器/动作的编辑链接。我非常喜欢淘汰赛在 MVVM 方面为我提供的功能,但不确定我是否试图通过在淘汰赛视图中指定操作链接来混合苹果和橙子。我想敲敲什么是完成此任务的最佳方法?

提前致谢!

<p>
  <b><span data-bind='text: Title'></span></b>
  <span data-bind='text: ArticleDate'></span>
</p>
<span data-bind='text: BodyText'></span>

就像是

<a data-bind="attr: { 'href': '@Url.Action("Details" .. ?

该模型

    public class SecureModel
    {
       public SecureModel()
       {

       }

       private List<Article> _articles;

       public List<Article> Announcements
       {
          get
          {
              return _articles;
          }
          set
          {
              _articles = value;
          }
       }
    }

看法

    @model UI.Models.SecureModel
    @{
      ViewBag.Title = "Announcements";
    }
    var viewModel = {

    isEditable: ko.observable(false),
    articles: ko.mapping.fromJS([]),
    loadInitialData: function () {
        ko.mapping.fromJS(serverData, dataMappingOptions, viewModel.articles);
    },
    loadUpdatedData: function () {
        ko.mapping.fromJS(serverData, dataMappingOptions, viewModel.articles);
    }
};
4

1 回答 1

0

如果我正在阅读您的代码,那么您已经将范围限定为Article自从您的第一个 KO 数据绑定示例显示 Title、ArticleDate 等......这有点难以判断,因为您没有显示Article属性的内容。 ..

如果是这种情况,您应该能够执行以下操作:

<a data-bind="attr: { 'href': '@Url.Action("Details", "ControllerName", new {actionParameterName=ArticleModelKeyFieldName}">Details</a>

WhereactionParameterName是您的操作中的参数名称,并且ArticleModelKeyFieldName是您的文章模型上的关键字段。

所以如果你有这样的动作:

public ActionResult Details(int articleId)
{
....
}

然后actionParameterName是articleId。

于 2012-10-11T01:58:11.190 回答