我只是想在MVC RC中做一些簡單的驗證,並得到一個錯誤。爲了這個問題的目的,我是不使用UpdateModel。MVC RC驗證:這樣對嗎?
這是形式的代碼:
<%= Html.TextBox("UserId")%>
<%= Html.ValidationMessage("UserId") %>
如果我在控制器中添加以下行,我會在文本框一個NullReferenceException:
ModelState.AddModelError("UserId", "*");
因此,要解決這個問題,我還添加了以下行:
ModelState.SetModelValue("UserId", ValueProvider["UserId"]);
爲什麼我必須重新綁定值? 我只需要添加錯誤就可以做到這一點,但似乎我不應該這樣做。我覺得我正在做一些不正確的事情,或者只是對綁定不夠熟悉。
它看起來像我不是唯一一個見過這個。根據請求,以下是控制器代碼:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
AppUser newUser = new AppUser();
try
{
newUser.UserId = collection["UserId"];
AppUserDAL.AddUser(newUser);
return RedirectToAction("Index");
}
catch (Exception ex)
{
ViewData["ReturnMessage"] = ex.Message;
ModelState.AddModelError("UserId", "*");
ModelState.SetModelValue("UserId", ValueProvider["UserId"]);
return View(newUser);
}
I也注意到了這一點,我把它寫成了我做錯了的東西,並繼續進行其他工作。 – 2009-02-17 23:33:17
請問您可以添加頁面的完整代碼和控制器的方法? – zihotki 2009-02-18 06:05:59