【发布时间】:2011-01-06 21:49:46
【问题描述】:
我有一个使用 ViewModel 的表单视图。 Action "New" 渲染了一个新视图。提交此表单后,我将信息发送回“添加”操作。
如果数据库上的所有操作都成功,我想刷新视图。我从“添加”操作中创建了一个新的 viewmodel 实例并返回 View("New",viewModel) 。这并没有刷新我的看法。所有旧值(已提交)仍保留在视图中。 有没有办法在没有 RedirectToAction 方法的情况下刷新页面。
我在另一篇文章中读到不应使用 ModelState.Clear,因为它可能会产生不良结果。
谢谢,
三月
编辑 1 - 添加代码
New
public ActionResult New(string id)
{
var sysId= new Guid(id);
.......
........
string Details = pDto.Name + "(" + pDto.Code + ")";
var vm= new ViewModel(id);
vm.Details = Details;
return View(vm);
}
public ActionResult Add(ViewModel vm)
{
ViewModel vm= vm;
if (ModelState.IsValid)
{
var dto= _qRepository.GetFeaturesBy(viewModel.Code);
if (dto!= null)
{
ModelState.AddModelError("Code", "Code is already in Use.");
return View("New", viewModel);
}
_productService.AddFeature(..........);
// ModelState.Clear(); -- this works
vm= new ViewModel(vm.pId) { Message = "Code" + viewModel.Code + " was added ......", Details = vm.Details };
}
return View ("New", vm);
}
【问题讨论】:
-
你能发布你目前正在做的事情的代码吗?
标签: asp.net-mvc view