【发布时间】:2023-03-16 09:42:02
【问题描述】:
我已经创建了一个函数,用于根据下拉列表中的选择对文本框输入的值进行验证.. ..假设如果下拉列表中选择的项目是 amount 那么文本框中输入的值必须在在像这样的 10 t0 20 之间,我还有两个验证.. 为此,我有一个文本框、一个 dropdwonlist 和一个按钮
当我在文本框中输入值 30 并将下拉列表项选择为“金额”然后单击提交按钮时,视图未显示任何错误消息并且(如果我将文本框留空然后按提交按钮它应该显示错误消息但它没有显示)(我已经编写了自定义函数来在服务器端验证这些函数) 我在 postValues 方法上放了一个断点,但它没有命中...
为此我已经这样做了(控制器部分)
public class CrossFieldsTxtboxesController : Controller
{
public ActionResult Index()
{
var itemsforDropdown = new List<SelectListItem> {
new SelectListItem{ Text = "Amount" , Value = "Amount"},
new SelectListItem{Text= "Pound", Value ="Pound"},
new SelectListItem {Text ="Percent", Value ="percent"}
};
ViewData["Listitems"] = itemsforDropdown;
return View("DdlCrossFields");
}
[HttpPost]
public ActionResult PostValues(CrossFieldValidation model)
{
if (!ModelState.IsValid)
{
return View(model);
}
else
{
return RedirectToAction("DdlCrossFields");
}
}
}
这是我的观点
@model MvcSampleApplication.Models.CrossFieldValidation
@{
ViewBag.Title = "DdlCrossFields";
}
<h2>DdlCrossFields</h2>
@using (Html.BeginForm())
{
<div class ="editor-field">
@Html.TextBoxFor(m => m.TxtCrossField)
@Html.ValidationMessageFor(m=>m.TxtCrossField)
</div>
@Html.DropDownList("Listitems",ViewData["Listitems"] as SelectList)
<input id="PostValues" type="Submit" value="PostValues" />
}
这是我的模型部分
public class CrossFieldValidation
{
public string DDlList1
{ get; set; }
[Required(ErrorMessage = "Quantity is required")]
[Display(Name= "Quantity:")]
[ValueMustbeInRange]
[NumericAttributes]
public string TxtCrossField
{ get; set; }
}
有没有人知道为什么它不适用于按钮点击,任何建议也将不胜感激 非常感谢..
【问题讨论】:
-
这个问题目前被标记为 MVC3 和 MVC4;你实际使用的是哪个?
-
我正在使用 Visual Studio 2012...和 mvc 4
标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor