2012-05-24 27 views
0

使用jQuery TEMPL()我有一個模板如何使用MVC3

<script id="template" type="text/x-jquery-tmpl"> 
<div class="experience"> 
    <label for="c${count}">New Thing:</label> 
    <input type="text" id="c${count}" name="Fund[${count}].Name" /> 
    <label for="c${count}">New Thing count:</label> 
    <input type="text" id="c${count}" name="Fund[${count}].FundNo" /> 
</div> 

到我動態控件添加到一個div容器。

我有一個模型在我的MVC應用程序

[Serializable] 
public class Step2ViewModel : IStepViewModel 
{ 
    [Required] 
    public List<FormTest.Models.Item> Things; 
} 

[Serializable] 
public class Item 
{ 
    public string Name { get; set; } 
    public string Number { get; set; } 
} 

如何綁定這些新創建的控件模型。這是否需要在我的模板中使用 @ Html.LabelFor,@ Html.TextBoxFor等?

謝謝!

編輯

以防萬一的問題有不同的解釋 - 我要綁定動態創建的控件,當窗體發佈到列表在我的模型(這是用TEMPL()完成)。

+0

請回去開始使用[JsRender](https://github.com/BorisMoore/jsrender)! – balexandre

+0

必須有一個令人信服的理由來使用一個接近beta測試版的庫嗎? templ()有什麼問題? – MikeW

+0

接近測試版?隊友,該項目(jQuert模板)完成!沒有更多的更新,故事的結尾。接近測試版的JsRender比jQuery模板和我自己更強大,許多人在生產中使用它。 – balexandre

回答

0

首先的。

鮑里斯摩爾創建了一種方法來繼續jQuery模板項目,它叫做JsRender。隨着JsRender你有jQuery的模板的能力,以及更多,像accessing paths,使用helper functions,有no dependency on jQuery任何和不勝枚舉的...

PluralSight有一個完整的3小時course just for JsRender(這樣你就可以查看它的重要性),您可以開始使用試用帳戶查看它。


現在關於你的實際問題

你想在提交表單,使.NET框架填補了型號爲你每一次,你必須確保你寫的每一個屬性因爲你有一個數組,所以你需要傳遞模型的完整路徑。

0
<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      var count = 0; 
      $('#btnAddDiv').live('click', function() { 
       var data = [{ 'count': count++}]; 
       $('#template').tmpl(data).appendTo('body'); 
      }); 
     }); 
    </script> 
    <script id="template" type="text/x-jquery-tmpl"> 
<div class="experience"> 
    <label for="c${count}">New Thing:</label> 
    <input type="text" id="c${count}" name="Fund[${count}].Name" /> 
    <label for="c${count}">New Thing count:</label> 
    <input type="text" id="c${count}" name="Fund[${count}].FundNo" /> 
</div> 
    </script> 

    <input type="button" id="btnAddDiv" value="Add Div" /> 

//添加上按鈕的div,你正在使用一個項目,將不再有更多的更新,這是從來沒有完成單擊

//Or 




<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
     <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       var data = [{ 'count': 1 }, { 'count': 2 }, { 'count': 3}]; 
       $('#template').tmpl(data).appendTo('body'); 
      }); 
     </script> 
     <script id="template" type="text/x-jquery-tmpl"> 
    <div class="experience"> 
     <label for="c${count}">New Thing:</label> 
     <input type="text" id="c${count}" name="Fund[${count}].Name" /> 
     <label for="c${count}">New Thing count:</label> 
     <input type="text" id="c${count}" name="Fund[${count}].FundNo" /> 
    </div> 
     </script> 
+0

使用此腳本主要然後只有它會工作: Thulasiram

+0

感謝您的響應,但我已經有了動態添加的控件。這個問題涉及到底層模型 - 即。 POST值 - 填充公共List 事物;不管怎麼說,還是要謝謝你。 – MikeW