我知道有关于这个主题的更多主题,但是我有一个不同的问题,或者我只是不理解给定的解决方案。 所以重新审视这个主题 我在这里缺少什么?
这会将所选值读入selectedview属性(并将其写回)所以,这样就可以了。
VIEW
<div class="form-group">
<div class="col-md-10">
@Html.DropDownListFor(model => model.Gender,
new List<SelectListItem>
{
new SelectListItem { Text = "Male", Value = "m"},
new SelectListItem { Text = "Female", Value = "f"},
}
, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Gender, "", new { @class = "text-danger" })
</div>
</div>
这会将所选值读入selectedview属性(但不会读回)
<div class="form-group">
<div class="col-md-10">
@Html.DropDownListFor(model => model.SchoolID,
@* Model.SchoolList *@
new List<SelectListItem>
{
new SelectListItem { Text = "School 1", Value = "1"},
new SelectListItem { Text = "School 2", Value = "2"},
}
, new { htmlAttributes = new { @class = "form - control" } })
@Html.ValidationMessageFor(model => model.SchoolID, "", new { @class = "text-danger" })
</div>
</div>
模型和数据库设置
MODEL
public string Gender { get; set; }
public string SchoolID { get; set; }
DATABASE TABLE
[Gender] [varchar](50) NULL,
[SchoolID] [int] NOT NULL,
DATABASE STORED PROCEDURE
@Gender varchar(50),
@SchoolID int
关于model.SchoolID
的某些内容使得所选值可以正确设置,但它不会将更改的选定值返回给模型,即使SchoolID
和Gender都在模型中定义为字符串。所以对于DropDownListFor
,它们都应该属于同一类型,对吗?如果是这样,那么我不知道为什么一个人在工作而另一个人不在......
因此,对此问题的一些启示将不胜感激。
答案 0 :(得分:0)
我在视图中有下一行代码:
@Html.HiddenFor(model => model.SchoolID) ...
这禁用了dropdownlistfor的selectedvalue的更新(或更准确地说,可能通过不发布值来禁用了model.SchoolID的更新?)无论什么原因,删除此行解决了问题。
谢谢@Stephen,感谢您的支持,谢谢@Chris,指出我正确的方向。