我在数据库中提交一些数据,提交后我想显示相同的页面。但我正在查看文本框值不为空的页面。
ModelState.Clear();
我已经习惯了清除文本框。
但仍保留文本框值。请建议我在mvc3中提交后清除模型。
public ActionResult AddNewCategory(CategoryViewModel model) {
if (ModelState.IsValid) {
int result = 0;
var categoryEntity = new Category {
CategoryName = model.CategoryName, CategorySlug = model.CategorySlug
};
result = Convert.ToInt32(_categoryRepository.AddNewCategory(categoryEntity));
if (result > 0) {
ModelState.Clear();
}
}
return View(model);
}
答案 0 :(得分:15)
您正在获得相同的模型,因为您已将其传递到视图View(model)
。这里有几个选项:要么传递空模型,要么重定向到后期操作的获取变体。
<强> 1)强>
if (ModelState.IsValid)
{
//saving
if (result > 0)
{
ModelState.Clear();
return View(new CategoryViewModel());
}
}
<强> 2)强>
if (ModelState.IsValid)
{
//saving
if (result > 0)
{
return RedirectToAction("AddNewCategory");
}
}
PS:我强烈建议使用第二种方法,因为您可能希望进行其他数据库调用来构建模型,而您不想在多个位置执行此操作。
答案 1 :(得分:2)
以最简单的方式尝试
using(Impersonation.LogonUser(domain, user, password, LogonType.NewCredentials))
{
ITerminalServicesManager manager = new TerminalServicesManager();
using (ITerminalServer server = manager.GetRemoteServer(server))
{
server.Open();
foreach (ITerminalServicesSession session in server.GetSessions())
{
//Do your stuff here.
}
}
}
答案 2 :(得分:1)
Hear is ModelState.Clear()
是什么ModelState.Clear()用于清除错误,但它也用于 强制MVC引擎重建要传递给View的模型。
因此,在你的情况下@Vsevolod Goloviznin建议你可以使用:
return View(new CategoryViewModel());
使用空值视图