asp.net-mvc – 如何在验证集合中添加验证错误asp.net mvc?
发布时间:2020-12-16 00:24:00 所属栏目:asp.Net 来源:网络整理
导读:在我的控制器的动作中,我有以下代码: public ActionResult GridAction(string id){ if (String.IsNullOrEmpty(id)) { // add errors to the errors collection and then return the view saying that you cannot select the dropdownlist value with the "
在我的控制器的动作中,我有以下代码:
public ActionResult GridAction(string id) { if (String.IsNullOrEmpty(id)) { // add errors to the errors collection and then return the view saying that you cannot select the dropdownlist value with the "Please Select" option } return View(); } 更新: if (String.IsNullOrEmpty(id)) { // add error ModelState.AddModelError("GridActionDropDownList","Please select an option"); return RedirectToAction("Orders"); } 更新2: 这是我更新的代码: @Html.DropDownListFor(x => x.SelectedGridAction,Model.GridActions,"Please Select") @Html.ValidationMessageFor(x => x.SelectedGridAction) 该模型如下所示: public class MyInvoicesViewModel { private List<SelectListItem> _gridActions; public int CurrentGridAction { get; set; } [Required(ErrorMessage = "Please select an option")] public string SelectedGridAction { get; set; } public List<SelectListItem> GridActions { get { _gridActions = new List<SelectListItem>(); _gridActions.Add(new SelectListItem() { Text = "Export to Excel",Value = "1" }); return _gridActions; } } } 这里是我的控制器动作: public ActionResult GridAction(string id) { if (String.IsNullOrEmpty(id)) { // add error ModelState.AddModelError("SelectedGridAction","Please select an option"); return RedirectToAction("Orders"); } return View(); } 什么都没发生!我完全迷失在这一个! 更新3: 我现在使用以下代码,但仍然验证不会触发: public ActionResult GridAction(string id) { var myViewModel= new MyViewModel(); myViewModel.SelectedGridAction = id; // id is passed as null if (!ModelState.IsValid) { return View("Orders"); } 更新4: $("#linkGridAction").click(function () { alert('link grid action clicked'); $.get('GridAction/',{ SelectedGridAction: $("#SelectedGridAction").val() },function (result) { alert('success'); }); }); 控制器如下所示: // OrderViewModel has a property called SelectedGridAction. public ActionResult GridAction(OrderViewModel orderViewModel) { return View(); } 更新5:验证没有触发: public ActionResult GridAction(OrderViewModel orderViewModel) { if (!ModelState.IsValid) { return View("Orders",orderViewModel); } return View(); } 解决方法
您可以使用视图模型:
public class MyViewModel { [Required] public string Id { get; set; } } 接着: public ActionResult GridAction(MyViewModel model) { if (ModelState.IsValid) { // the model is valid,the user has selected an id => use it return RedirectToAction("Success"); } return View(); } 更新: 在对我的答复的数百条评论之后,我觉得有必要提供一个充分的工作实例: 像往常一样,从视图模型开始: public class MyViewModel { [Required] public string SelectedItemId { get; set; } public IEnumerable<SelectListItem> Items { get { // Dummy data return new SelectList(Enumerable.Range(1,10) .Select(i => new SelectListItem { Value = i.ToString(),Text = "item " + i }),"Value","Text"); } } } 然后一个控制器: public class HomeController: Controller { public ActionResult Index() { return View(new MyViewModel()); } [HttpPost] public ActionResult Index(MyViewModel model) { if (!ModelState.IsValid) { // The user didn't select any value => redisplay the form return View(model); } // TODO: do something with model.SelectedItemId return RedirectToAction("Success"); } } 最后的看法: <% using (Html.BeginForm()) { %> <%= Html.DropDownListFor( x => x.SelectedItemId,Model.Items,"-- Select Item --" ) %> <%= Html.ValidationMessageFor(x => x.SelectedItemId) %> <input type="submit" value="OK" /> <% } %> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 会话到期后重定向到特定页面(MVC4)
- asp.net-mvc – ASP.NET MVC4,带有webforms Default.aspx作
- asp.net-mvc – ASP.Net MVC4将“创建视图”绑定到包含List
- asp.net-mvc-4 – 在一个项目中混合Web Api和ASP.Net MVC页
- 动手造轮子:实现简单的 EventQueue
- asp.net – 表单身份验证无法正确验证用户
- asp.net-mvc-4 – 扩展名的URL不能通过路由处理
- asp.net – asp:RadioButtonList’RepeatLayout’被CDN忽略
- Asp.net网站和网站服务托管
- asp.net – 我可以在卫星装配中组合本地资源吗?
推荐文章
站长推荐
- asp.net – iis7中的windows身份验证
- asp.net – 在.NET .NET中ctl00是常量吗?
- ASP.NET:获取页面的文件名
- asp.net – 长时间运行HttpWebRequests
- asp.net – NServiceBus在Web / MVC4 SQL架构中有
- asp.net – AWS SNSClient发布请求的超时错误
- asp.net-mvc-3 – 在Kendo网格中显示datetime字段
- asp.net-mvc – System.Web.Optimization与Micro
- asp.net – Mono和IHttpHandler
- asp.net-mvc – ASP.NET MVC 3在文章视图中添加注
热点阅读