DropDownListFor不回写selectedvalue

时间:2018-01-05 12:03:13

标签: c# asp.net-mvc dapper dropdownlistfor

我知道有关于这个主题的更多主题,但是我有一个不同的问题,或者我只是不理解给定的解决方案。 所以重新审视这个主题 我在这里缺少什么?

这会将所选值读入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,它们都应该属于同一类型,对吗?如果是这样,那么我不知道为什么一个人在工作而另一个人不在...... 因此,对此问题的一些启示将不胜感激。

1 个答案:

答案 0 :(得分:0)

我在视图中有下一行代码:

@Html.HiddenFor(model => model.SchoolID) ...

这禁用了dropdownlistfor的selectedvalue的更新(或更准确地说,可能通过不发布值来禁用了model.SchoolID的更新?)无论什么原因,删除此行解决了问题。

谢谢@Stephen,感谢您的支持,谢谢@Chris,指出我正确的方向。