use*_*848 5 html c# asp.net-mvc-3
我遇到了下拉菜单和viewbag的问题.我在控制器中使用以下代码设置下拉列表:
applicationGuid = new Guid(form["applicationList"]);
var applications = _applicationRepository.List();
ViewBag.applicationList = new SelectList(applications, "Id", "Name", applicationGuid);
Run Code Online (Sandbox Code Playgroud)
在视图中,这完美地工作并返回先前选择的值(applicationGuid):
@Html.DropDownList("applicationList", "")
Run Code Online (Sandbox Code Playgroud)
现在我想使用以下代码,因为我想在下拉列表中添加一些属性:
@Html.DropDownList("applicationList", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" })
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,所选的值不会呈现(即使它被传递给视图,我可以看到selected ="true"对着ViewBag SelectList中的正确项).
上面的两个例子呈现为(这个具有selected ="selected"):
<select id="applicationList" name="applicationList"><option value=""></option><option selected="selected" value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select>
Run Code Online (Sandbox Code Playgroud)
并且像这样(选择已经消失!!):
<select class="required" id="applicationList" name="applicationList" rel="0"><option value=""></option><option value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option><option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option></select>
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释我在这里做错了什么,为什么它会失去选定的价值?我发现了很多关于视图数据项名称如何不能冲突的帖子,但是我已经用随机名称删除了这一点,似乎没有任何作用!这是MVC3中的问题吗?
Car*_*000 15
问题似乎是当你将SelectList
参数作为参数传递给它时Html.DropDownList()
,它不喜欢它与实际的下拉列表具有相同的名称.
我复制了你的代码并遇到了和你一样的问题.
但是一改变了
@Html.DropDownList("applicationList", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" })
Run Code Online (Sandbox Code Playgroud)
至
@Html.DropDownList("applicationListX", ViewBag.applicationList as SelectList, "", new { rel = "0", @class = "required" })
Run Code Online (Sandbox Code Playgroud)
它产生了工作输出:
<select class="required" id="applicationListX" name="applicationListX" rel="0"><option value=""></option>
<option selected="selected" value="2f666645-9b28-406f-bd9f-9ecc009346a6">app1</option>
<option value="898cbbb5-5dff-4378-b15a-9ecc00b8242f">app2</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样,但有你的解决方法.
归档时间: |
|
查看次数: |
11237 次 |
最近记录: |