我認爲最好的選擇是使用模型和數據註釋。 或使用ViewBag顯示錯誤文本。我也看到你正在發送mymodel 到視圖,但它尚未被聲明。
ViewBag方法:
C#:
using MyProject.Models;
public ActionResult FooMeth(MyModel model)
{
if (cond == false)
{
// If failed, return input data and display error.
ViewBag.ServerReply = "My Message.";
return View(model);
}
// If successful return to black page.
return View();
}
HTML:
@Html.TextBoxFor(m => m.Foo)
@ViewBag.ServerReply
或者你可以只使用模型的驗證與數據註釋:
型號&數據註釋方法:
using System.ComponentModel.DataAnnotations;
public class MyModel
{
[Required(ErrorMessage = "Please fill in text box.")]
[StringLength(62, ErrorMessage = "Text must be {0} characters or less.")]
public string Foo { get; set; }
}
C#
using MyProject.Models;
public ActionResult FooMeth(MyModel model)
{
if (ModelState.IsValid)
{
// Code here if successful.
}
// If model is not valid return model with error messages.
return View(model);
}
HTML:
@Html.TextBoxFor(m => m.Foo)
@Html.ValidationMessageFor(m => m.Foo)
你從行動返回什麼?你能證明嗎? –
你在添加'ModelState.AddError'後返回什麼。 –
設置驗證摘要true @ html.validationmessagefor(model => model.mykey) 它可以爲您或更好地存儲在tempdata或viewbag中,因爲modelstate會爲每個新請求創建錯誤,因此可能會丟失數據 –