2017-06-08 48 views
1

才能打印錯誤消息的形式開始之前,我使用MVC V4我們可以在mvc的表單開始之前打印錯誤消息嗎?

這是我的控制器操作碼 [HTTPGET]

 public ActionResult ChangePassword(string aToken) 
     { 
      aToken = Server.UrlDecode(aToken); 

      if (aToken != null) 
      { 
      ......... 
      } 
      else 
      { 
     ViewBag.Error = "Sorry, this link is not being recognized as valid. 
      } 

    return view();`enter code here` 
     } 

這是我的CSHTML文件

@if (ViewBag.Error != null) 

    { 
     <p class="text-danger"> 
     @ViewBag.Error 
     </p> 
    } 
    else 
    { 
     using (Html.BeginForm("ChangePassword", "Account", FormMethod.Post, new { 
    @class = "form-horizontal ", role = "form" })) 
     { 

     ........................ 
     } 

    }`enter code here` 

技術性, 它是否正確?

回答

0

這是否解決問題?是。但是,將用戶重定向到具有靜態文本的其他頁面會更安全。此外,您可以使用ModelState,但它會在發佈操作時產生問題。

0

嗨,我們可以在任何地方打印錯誤信息,根據我們提供錯誤信息的地方,它會渲染頁面。

因此,根據您的上述代碼本身,viewbag將在表單開始前打印錯誤消息,但只是一個小小的說明。

ViewData和TempData需要類型轉換和空檢查,而 ViewBag不需要這樣的檢查。

這將節省您的如下幾行代碼:

<p class="text-danger"> 
    @ViewBag.Error 
    </p> 
    using (Html.BeginForm("ChangePassword", "Account", FormMethod.Post, new { 
@class = "form-horizontal ", role = "form" })) 
    { 

    ........................ 
    } 

附加信息:http://www.binaryintellect.net/articles/36941654-8bd4-4535-9226-ddf47841892f.aspx

希望以上信息對您有所幫助

感謝

KARTHIK

+0

我們c放在任何地方,但它有可能得到它在另一個partialcontrol? – Adrian

+0

嗨Anirudha Gupta,我希望在這裏partialcontrol控制意味着部分視圖,如果是的話,我們可以通過並將其作爲模型本身。請參閱此鏈接:https://stackoverflow.com/a/20368646/3397630。謝謝 –

相關問題