Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Html.DropDownList的名称迭代出现问题_C#_Razor_Asp.net Mvc 4_Html Select - Fatal编程技术网

C# Html.DropDownList的名称迭代出现问题

C# Html.DropDownList的名称迭代出现问题,c#,razor,asp.net-mvc-4,html-select,C#,Razor,Asp.net Mvc 4,Html Select,我有一个表,其中每一行包含表单的字段 我使用以下方法在视图中迭代: @foreach (var item in Model) { } 在foreach中,我创建了一个包含各种字段的新表行。e、 g: <tr><td> @Html.DropDownList("granny", "") </td></tr> 一切都很顺利。景色越来越美,一切看起来都很好。然而,我注意到字段的name属性{e.g <select id="granny" name

我有一个表,其中每一行包含表单的字段

我使用以下方法在视图中迭代:

@foreach (var item in Model) { }
在foreach中,我创建了一个包含各种字段的新表行。e、 g:

<tr><td> @Html.DropDownList("granny", "") </td></tr>
一切都很顺利。景色越来越美,一切看起来都很好。然而,我注意到字段的name属性{e.g

<select id="granny" name="granny">
但是VisualStudio不太喜欢这样


这一切的短暂和甜蜜在于:

如何为ViewData生成的Html.DropDownList提供它们自己的唯一ID/名称?

如何为ViewData生成的Html.DropDownList提供它们自己的唯一ID/名称

您不能更改生成的输入字段的
名称
,这是经过设计的。只能更改id。也就是说,您不需要这样做。您可以执行以下操作:

@for (var i = 0; i < Model.Count; i++) 
{ 
    <tr>
        <td>
            @Html.DropDownList(
                "selectedGranny", 
                (IEnumerable<SelectListItem>)ViewData["granny"]
            )
        </td>
    </tr>    
}
(变量i=0;i似乎您正在尝试对集合进行数据绑定,或者您只需要手动命名所选内容(因为它们在web表单上实际上是不同的控件)

您可以使用以下重载将html参数传递给下拉列表:

@Html.DropDownList(
    "CategoryID", 
    (SelectList)ViewBag.CategoryId, 
    "--Select One--", 
    new{  //anonymous type
          name = "granny1",
          @class = "myCssClass", 
          onchange = "someFunction();"
       }) 

我试着给她一个名字,但她什么也没做。也就是说,它没有改变呈现的名称。无论出于什么原因,将她转换为严格类型的视图似乎很有效。感谢您的帮助和时间。这很有效。而且,将其转换为严格类型的视图也很有帮助。谢谢!
new { @Name="xyz" + n }
@for (var i = 0; i < Model.Count; i++) 
{ 
    <tr>
        <td>
            @Html.DropDownList(
                "selectedGranny", 
                (IEnumerable<SelectListItem>)ViewData["granny"]
            )
        </td>
    </tr>    
}
@Html.DropDownList(
    "CategoryID", 
    (SelectList)ViewBag.CategoryId, 
    "--Select One--", 
    new{  //anonymous type
          name = "granny1",
          @class = "myCssClass", 
          onchange = "someFunction();"
       })