【发布时间】:2011-02-26 01:43:38
【问题描述】:
我对 ASP.Net MVC 还是很陌生,所以也许这是一个愚蠢的问题。
我正在使用具有 razor 语法的 MVC 3。
我的问题是,如何在成功发布后显示一些 HTML?
我有一个密码恢复页面,在发布正确信息后,我希望它再次显示该视图,但添加“新密码已发送到您的电子邮件地址”。
在 WebForms 中,我只需要一个不可见的面板并显示它,或者一个文字并在回发时将一些文本填充到其中。我在 MVC 中做什么?
我想我可以为它添加一个不同的视图,但这似乎有点矫枉过正——或者我在这里误解了 MVC 范式?
编辑:
我尝试为此使用强类型模型,但它不起作用:-(
我的观点(简化了一点):
@model BudgetPal.Model.MVC.Account.EditModel
@if (Model.ShowConfirmation)
{
<div class="confirmation">Your profile has been saved.</div>
}
模型:
public class RecoverPasswordModel
{
[Required]
[Display(Name = "E-mail")]
[StringLength(250)]
[RegularExpression(@"([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})", ErrorMessage = "Not a valid e-mail address")]
public string Email { get; set; }
public bool ShowConfirmation { get; set; }
}
还有我的控制器:
public ActionResult Edit()
{
EditModel model = new EditModel(UserSession.User);
return View(model);
}
[HttpPost]
public ActionResult Edit(EditModel model)
{
if (!ModelState.IsValid)
return View(model);
// Save changes here
model.ShowConfirmation = true;
return View(model);
}
【问题讨论】:
标签: asp.net-mvc-3