【发布时间】:2014-04-22 20:31:49
【问题描述】:
有 2 个同名操作。(AddNewUser)其中一个使用 HttpGet,另一个使用 HttpPost。
[HTTPGet]
public ActionResult AddNewUser()
{
User user = Utilities.SessionProvider.GetCurrentUser();
if (user.ID_User == 0)
return Redirect("Apps.kosarfci.ir");
RoleType role = (RoleType)RoleDeterminer.RoleDeterminate();
if (role != RoleType.Center)
{
return RedirectToAction("Restriction");
}
return View("VNewUser");
}
[HttpPost]
public ActionResult AddNewUser(VMNewUser InModel)
{
User user = Utilities.SessionProvider.GetCurrentUser();
if (user.ID_User == 0)
return Redirect("Apps.kosarfci.ir");
RoleType role = (RoleType)RoleDeterminer.RoleDeterminate();
if (role != RoleType.Center)
{
return RedirectToAction("Restriction");
}
IUserBL centerUserBL = new CenterUserBL();
InModel.User.UserName = InModell.User.NationalCode;
InModel.User.Password = InModell.User.PersonalCode;
bool confirmedBL = centerUserBL.AddUser(InModel.User);
_msgList.Add(new Message() { MsgType = MessageType.Success, MsgContent = MessageProvider.GetMessage(MessageContent.Submit_Success_NewUser) });
ViewBag.Message = _msgList;
return View("VNewUser");
}
AddNewUser() ,返回带有输入条目的表单,然后将表单提交给 AddNewUser(VMNewUser InModel)。但之后会显示一个带有已发布模型的已填写条目的表单。我希望显示一个带有空白输入条目的表单,因为我没有将预填充模型(VMNewUser)发送到视图中。 为什么?
--VMNewUser--
@model PersonManagement.Views.User.VMNewUser
<style>
table{
font-family:Tahoma;
}
</style>
@using (Html.BeginForm("AddNewUser", "User", FormMethod.Post))
{
<table>
<tr>
<td>name</td>
<td>@Html.TextBoxFor(f=>f.User.FirstName)</td>
</tr>
<tr>
<td>family</td>
<td>@Html.TextBoxFor(f=>f.User.LastName)</td>
</tr>
<tr>
<td>personalcode</td>
<td>@Html.TextBoxFor(f=>f.User.PersonalCode)</td>
</tr>
<tr>
<td>nationalcode</td>
<td>@Html.TextBoxFor(f=>f.User.NationalCode)</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="create" style="font-family:Tahoma;float:left" /></td>
</tr>
</table>
}
【问题讨论】:
-
发布到模型并保存后,将用户重定向到AddNewUser(Httpget)或在AddNewUser(HttpPost)末尾调用"return RedirectToAction("AddNewUser")"。