下面的代码显示了一个带有类别的下拉列表和一个用于创建新类别的空文本框。它们都"瞄准"相同的属性,我希望出现以下场景:如果用户没有在dropdownlistfor
中进行选择,则应将textboxfor
中的值传递给控制器。
我现在的问题是默认情况下下拉列表中总是有一个值被选中。是否有一种方法可以让默认值像这样——选择类别——,它的值为null,并且不传递给控制器?
@using (Html.BeginForm("SaveCategory", "Home", FormMethod.Post))
{
<div class="col-md-3">
@Html.HiddenFor(o => o.Id)
<p>Choose existing category</p>
@Html.DropDownListFor(model => model.ChoosenCategory,
Model.Category.ListOfCategories.Select(kat => new SelectListItem { Text = kat, Value = kat }))
</div>
<div class="col-md-3">
<p>Create new category</p>
@Html.TextBoxFor(o => o.BlogComment.ComBody, new { @class = "form-control", placeholder = "Add new category" })
</div>
<div class="col-md-3">
<button type="submit" name="xid" class="btn btn-secondary" style="margin-top: 30px;">Save Category</button>
</div>
<div style="float: none;clear: both"></div>
}
设置此属性为下拉-- Select Category --
像这样:
@Html.DropDownListFor(model => model.ChoosenCategory, Model.Category.ListOfCategories.Select(kat => new SelectListItem { Text = kat, Value = kat }), "-- Select Category --")
让我知道它是否适合你