我正在使用BeginForm,其中一个Dropdown的初始值未正确设置。该值保存在SelectLitemItem中,并在前面的表中正确显示(在“索引”视图中)。为列表提供的可用值也是正确的。它始终默认为"创建"其值为" 1"即使它应该是"更新"其值为" 2"。
如果我只是在表单上显示Model.RuleType.Value,它就会正确显示。
我看不出我做错了什么。我看不到重复的ID /名称,并尝试包含隐藏字段。
还有另一个下拉列表恰好使用值和文本的公共值,并且有效。
有什么想法吗?
感谢。
*@subdomain.domain.com
RuleTypeDropdown
@model AMS.Web.Areas.Admin.Models.RuleActionModel
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true) @Html.HiddenFor(model => model.ID)
<div class="form-group">
@Html.LabelFor(model => model.RuleType, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.Partial("Partials/_RuleTypeDropdown") @Html.ValidationMessageFor(model => model.RuleType)
</div>
</div>
模型
@using Kendo.Mvc.UI;
@(Html.Kendo().DropDownList()
.Name("RuleType")
.DataTextField("Text")
.DataValueField("Value")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("RuleTypeList", "List", new { Area = "Admin" });
});
})
)
控制器
public class RuleActionModel
{
public RuleActionModel() { }
public RuleActionModel(RuleAction ruleAction)
{
...
RuleType = new SelectListItem()
{
Value = ruleAction.RuleType.ToString(),
Text = ((RuleType)(ruleAction.RuleType)).EnumToString()
};
}
[Display(Name = "Type")]
public SelectListItem RuleType { get; set; }