BeginForm没有显示初始下拉列表值

时间:2016-03-21 10:52:19

标签: asp.net-mvc data-binding kendo-ui

我正在使用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; }

0 个答案:

没有答案