簡體   English   中英

在ASP.NET MVC 3視圖中,如何為列表字段生成編輯器?

[英]In an ASP.NET MVC 3 view, how can I generate an editor for a list field?

我在ASP.NET MVC 3視圖中創建一個表單,其中一個字段用於指定一個int列表(對應於已編輯模型中的List<int> )。 如何在我的視圖中生成此編輯器字段? 我認為我可以使用MVC 3幫助程序。

如果需要下拉列表,則可以使用HTML.DropDownList幫助器方法。 這是您想要的還是需要將列表顯示為有序/無序HTML列表?

編輯

您可以創建自己的HTML Helper函數。 假設您使用Razor,則可以按照以下步驟操作

1.)在App_Code目錄中創建一個新的.cshtml文件,並根據需要命名(例如HTMLHelpers.cshtml)

2)在文件中寫入以下內容

@helper OrderedList(List<int> list) {
    <ul>
        @foreach (var item in list)
        {
            <li>@item</li>
        }
    </ul>
}

3)現在,您可以在視圖中調用新功能。 例如寫

@HTMLHelpers.OrderedList(Model)

第二次編輯

您也可以使用Javascript實現該功能。 Steven Sanderson的Knockout.js是一個很棒的庫,可以幫助您將值數據綁定到html元素。

kickout.js文檔中的此示例與您的需求類似。

您也可以查看Steven Sanderson的博客文章 ,其中介紹了如何將Knockout.js與可變長度列表一起使用以及如何將列表數據提交回服務器。

Phil Haack的博客文章討論了使用模型綁定到列表的各個方面:控制器代碼,視圖代碼,復雜和原始類型,字典綁定。 從該博客文章的第一段開始,MVC內置模型聯編程序將List與僅傳遞相同名稱的查詢字符串(或發布時的表單)參數的編號綁定到控制器。

<form method="get">
   <input type="checkbox" name="ints" value="1" />
   <input type="checkbox" name="ints" value="4" />
   <input type="checkbox" name="ints" value="2" />
   <input type="checkbox" name="ints" value="8" />
   <input type="submit" />
</form>

這將正確綁定到

public ActionResult UpdateInts(List<int> ints) {

  return View(ints);
}

有關完整信息,請參閱該博客文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM