【发布时间】:2014-08-31 17:24:27
【问题描述】:
我正在使用DropDownListFor 并提供-- Select Make -- 的默认选择,其值为空。我想为用户提供做什么的提示(因此是“选择制作”),但不想让他们实际提交该值。目前该网站允许这样做。
我认为添加最小长度 2 会阻止它,但没有运气。
我是 .NET MVC 的新手,所以如果我以完全错误的方式执行此操作,请告诉我。
实际的 POST 请求正文是:
Make=&OtherArgument=1&NextArgument=test
查看代码:
@Html.LabelFor(m => m.Make)
@Html.DropDownListFor(m => m.Make, Model.Make, "-- Select Make --")
@Html.ValidationMessageFor(m => m.Make)
型号代码:
[Required(ErrorMessage = "*", AllowEmptyStrings = false)]
[StringLength(50, MinimumLength = 2, ErrorMessage = "*")]
public IEnumerable<SelectListItem> Make = new List<SelectListItem>
{
new SelectListItem
{
Text = "Deere",
Value = "Deere"
},
new SelectListItem
{
Text = "Case",
Value = "Case"
},
new SelectListItem
{
Text = "CAT",
Value = "CAT"
}
};
【问题讨论】:
-
要么删除默认参数,要么检查 jquery 中所选下拉列表的值
-
这有点难说。您似乎发布了“OtherArgument”的价值,但从您所展示的内容来看,尚不清楚这将来自哪里。也许我只是没有看到明显的东西。
-
@ArijitMukherjee 如果我删除默认参数,那么下拉菜单会自动选择第一个选项。我不希望这样,因为用户更有可能在不更改选项的情况下提交表单(我想强制他们选择)。
-
@MikeC。没错,表单还有其他字段(例如
OtherArgument)正在填写但不在上述代码中。所有其他字段都通过它们的值。 -
我明白了。实际上,我只是错误地阅读了您在上面的内容。抱歉,请忽略我的评论!
标签: jquery asp.net asp.net-mvc asp.net-mvc-5 client-side-validation