2009-11-20 50 views
5

我想知道如何在asp.net mvc中回传后清除字段?就像现在发生验证错误一样,字段保持填充用户输入的任何内容。这很好,但是,当没有发生验证错误时,我想要清除所有字段并显示一条消息。如何在asp.net mvc中回发后清除字段?

所以现在我通过使用ViewData成功显示,但不知道如何让字段清除。

回答

0

听起来像是为PRG (Post Redirect Get) pattern一份工作,因为你不希望用户刷新页面,并再次提交。

为此,我会在您的TempData中放置一条消息或标志,以便您可以检查当您重定向回原始URL然后向用户显示消息。

2

菲尔哈克说:

尝试调用

ModelState["value1"].Value = new 
ValueProviderResult(null, 
string.Empty, 
CultureInfo.InvariantCulture); 

你从内 您的控制器动作返回视图之前。

这样做是保持与键值“value1”关联的所有错误 ,但 用空值 替换该值。

From this SO question

-1

当您在视图中发回模型时,您可以分配模型,新参考。
就是这样。

if (ModelState.IsValid) 
    { 
     //Do your stuff here. 

     yourModel = new Moodel(); 
     return View(yourModel); 

    } 

在这种情况下,所有模型字段将为空,并且没有任何内容会显示在窗体上。

+0

这不起作用,ModelState.Clear(),但是确实 – 2015-08-25 12:24:03

8

试试这个:

if(ModelState.IsValid) 
{ 
    ModelState.Clear(); 
} 
return View(); 
+0

可能还需要设置你的ModelState错误,该行后:) – stuartdotnet 2014-10-20 00:33:15