asp.net-mvc-4 – MVC 4 – 从视图中的Controller -Show返回错误消息
发布时间:2020-05-25 03:06:18 所属栏目:asp.Net 来源:互联网
导读:我在VS2010中使用Razor做了一个C#项目(MVC 4)。 我需要从控制器返回错误信息查看并显示给用户。 我试过的是: 控制器: [HttpPost] public ActionResult form_edit(FormModels model) { model.error_msg = model.update_content(model);
|
我在VS2010中使用Razor做了一个C#项目(MVC 4)。
控制器: [HttpPost]
public ActionResult form_edit(FormModels model)
{
model.error_msg = model.update_content(model);
ModelState.AddModelError("error","adfdghdghgdhgdhdgda");
ViewBag.error = TempData["error"];
return RedirectToAction("Form_edit","Form");
}
视图: @model mvc_cs.Models.FormModels
@using ctrlr = mvc_cs.Controllers.FormController
@using (Html.BeginForm("form_edit","Form",FormMethod.Post))
{
<table>
<tr>
<td>
@Html.ValidationSummary("error")
@Html.ValidationMessage("error")
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.content_name)
@Html.DropDownListFor(x => x.selectedvalue,new SelectList(Model.Countries,Model.dd_value,Model.dd_text),"-- Select Product--")
</th>
</tr>
</table>
<table>
<tr>
<td>
<input type="submit" value="Submit" />
</td>
</tr>
</table>
}
请帮我实现这个。 解决方法返回视图(模型)会返回错误,因为您没有使用Post方法中的值填充模型,并且下拉列表的模型数据为空。请提供Get方法进一步说明如何管理显示错误。为了显示错误,您应该使用:[HttpPost]
public ActionResult form_edit(FormModels model)
{
if(ModelState.IsValid())
{
--- operations
return Redirect("OtherAction","SomeController");
}
// here you can use a little trick
//fill the model property that holds the information for the dropdown with the data
// you haven't provided the get method but it should look something like this
model.Countries = ... some data goes here;
model.dd_value = ... some other data;
model.dd_text = ... other data;
ModelState.AddModelError("","adfdghdghgdhgdhdgda");
return View(model);
}
然后在视图中只使用: @model mvc_cs.Models.FormModels
@using ctrlr = mvc_cs.Controllers.FormController
@using (Html.BeginForm("form_edit",FormMethod.Post))
{
<table>
<tr>
<td>
@Html.ValidationSummary(true)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.content_name)
@Html.DropDownListFor(x => x.selectedvalue,"-- Select Product--")
</th>
</tr>
</table>
<table>
<tr>
<td>
<input type="submit" value="Submit" />
</td>
</tr>
</table>
}
这应该可以正常工作。 如果您只是使用RedirectToAction,它将重定向到get方法 – >您将没有错误,但视图将被重新加载,并且不会显示任何错误。 其他方法是,您可以传递错误不是由ModelState.AddError,但与ViewData [“错误”]像这样: [HttpPost]
public ActionResult form_edit(FormModels model)
{
TempData["error"] = "someErrorMessage";
return RedirectToAction("form_Post","Form");
}
[HttpGet]
public ActionResult form_edit()
{
do stuff here ----
ViewData["error"] = TempData["error"];
return View();
}
@model mvc_cs.Models.FormModels
@using ctrlr = mvc_cs.Controllers.FormController
@using (Html.BeginForm("form_edit",FormMethod.Post))
{
<table>
<tr>
<td>
<div>@ViewData["error"]</div>
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.content_name)
@Html.DropDownListFor(x => x.selectedvalue,"-- Select Product--")
</th>
</tr>
</table>
<table>
<tr>
<td>
<input type="submit" value="Submit" />
</td>
</tr>
</table>
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ValidationMessage – 处理同一属性的多个错
- 在ASP.NET中拒绝用户时,’CustomIdentity’上的Serializati
- asp.net-mvc – 是否由Razor支持lambda表达式?
- asp.net-mvc – ASP.NET MVC报告
- asp.net – Visual Studio 2015 Web应用程序.NET Core与.NE
- .net – MVC 5中的“CacheProfile”
- 如何获取基于PhoneGap的应用程序来对ASP.NET Forms身份验证
- asp-classic – 如何在经典ASP中遍历集合?
- asp.net-mvc – 使用URL重写时Url.Action不正确
- asp.net-mvc – 如何使用ASP.NET MVC的plupload包?
推荐文章
站长推荐
- asp-classic – 超过响应缓冲区限制
- asp.net-mvc – 如何在验证汇总中显示MVC 3客户端
- ValidateInput属性似乎无法在ASP.NET MVC中工作
- asp.net-mvc – 如何使用Ninject将服务注入授权过
- 将ASP.NET应用程序连接到QuickBooks Online Edit
- asp.net-mvc – ASP.NET MVC应用程序中的“坏二进
- asp.net 分页显示数据表的数据的代码
- asp.net-mvc – SportStore:WebUI.WindsorContr
- asp.net – 从wsdl生成webservice
- asp.net – @ Url.Action在控制器中创建空值的参
热点阅读
