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>

actionParameterNameアクションのパラメータの名前はどこにありArticleModelKeyFieldName、Articlesモデルのキーフィールドです。

したがって、次のようなアクションがあった場合:

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

次にactionParameterName、articleIdになります。

于 2012-10-11T01:58:11.190 に答える