2012-10-11 39 views
0

我有一個淘汰賽模板(使用koExternaltemplateEngine_all.js),其中我想編輯鏈接,將引導到一個控制器/動作。我很喜歡在MVVM方面提供什麼擊倒了我,但不確定的,如果我試圖通過指定淘汰賽視圖的操作鏈接混合蘋果和桔子。我想叩擊什麼是完成這個最好的方法?如何與淘汰賽模板指定MVC3動作鏈接

在此先感謝!

<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); 
    } 
}; 
+0

我回答,但現在我想知道....你只是想知道,如果這樣做,這是很好的做法,還是你想知道如何做到這一點? – klabranche

+0

嗨@klabranche感謝您的回覆。我認爲你有正確的想法,我目前收到淘汰賽錯誤:無法解析bindings..unterminated字符串常量,當我嘗試這行代碼(設置ArticleModelKeyFieldName爲ID)目前,但我會努力,使其運行並回報。當然有興趣知道的意見,如果這甚至是一個好主意,我與模型結合淘汰賽/外部模板似乎打破的Razor視圖綁定到服務器端模式正常模式? – MikeW

+0

使用與KO服務器端模型是正常的。 – klabranche

回答

0

如果我在讀你的代碼已經作用域爲Article自右然後你的第一個KO數據a-bind樣本顯示標題,ArticleDate等....有點難以分辨,因爲您沒有顯示什麼Article具有屬性...

如果是這種情況,您應該可以做一些事情像這樣:

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

actionParameterName是在你的行動和ArticleModelKeyFieldName參數的名稱是您的文章模型中的關鍵領域。

所以,如果你有一個像一個動作:

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

然後actionParameterName將條款ArticleID。