從控制器內部的數據我非常新的ASP.NET MVC3但我有大約4年的PHP框架方面的經驗。使用modelstate.isvalid來驗證MVC3
我試圖建立一個MVC3 Web應用程序,但我有我的validationg模型的問題。 這裏是一個測試控制器,告訴你我正在嘗試沒有成功。
我試圖將值傳遞給我的控制器內部模型,但它不把它考慮的參數。
我試過對於junk.sentence使用modelstate.setmodelvalue,但是它保持POST請求的值無效,我想在控制器中默認更改(用於測試目的)。
任何人都可以幫忙嗎?
在此先感謝。
邁克爾
[HttpPost]
public ActionResult Create(Junk junk)
{
//ModelState.Clear();
junk.sentence = "coucou";
ModelState.SetModelValue("sentence", new ValueProviderResult(junk.sentence, junk.number, null));
//ModelState
if (ModelState.IsValid)
{
db.Junks.Add(junk);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(junk);
}
//
// GET: /Junk/Edit/5
public ActionResult Edit(int id)
{
Junk junk = db.Junks.Find(id);
return View(junk);
}
與解決方案的問題是,它不驗證「句」了,因爲現在它是一個常量字符串,但後來我想提出的變量...我將想驗證。但感謝您的回答! – 2012-02-24 15:21:21
@MichaelCh,哎呀,的確如此。我已經更新了我的答案,並在返回視圖之前移動了「ModelState.Remove」。 – 2012-02-24 15:22:30
還有一個問題在這種情況下,因爲現在modelstate.isvalid犯規考慮到「垃圾」模式的新的價值... 我不能有一個HTML幫手在我看來,因爲我有一個多對多的關係,所以我使用複選框,我會從的FormCollection ... – 2012-02-24 15:35:34