我将在我的网站上有一份登记表,其中将首先显示董事会规则/法律。一旦接受,它将显示主登记表。使用ViewModel如下所示:
public class MyViewModel
{
public int Readrules { get; set; }
public int Coppa { get; set; }
}
public ActionResult Register(MyViewModel model)
{
... at this stage model.Readrules and model.Coppa will contain the values passed
as query string parameters tat you could use here
}我的想法是,如果我去/register,它将显示规则,然后/register?readrules=1,它将显示登记表。这是如何在PHP中完成的,但现在我要迁移到ASP.NET。
做这件事最好的方法是什么?我是否可以重定向到相同的操作,只解析model.ReadRules的值,或者必须使用多个操作?我宁愿把它放在一个动作中,只需检查model.ReadRules == 1是否显示木板规则或注册表格。
谢谢
发布于 2013-10-29 18:03:32
您可以使用不同的控制器操作来显示规则、注册和处理注册,而不是重复使用registration,如下所示:
控制器操作:
public ActionResult BoardRules()
{
return View();
}
public ActionResult Register(MyViewModel model)
{
if (model.ReadRules != 1)
return RedirectToAction("BoardRules");
return View();
}
public ActionResult Registration(MyViewModel model)
{
if (model.ReadRules != 1)
return RedirectToAction("BoardRules");
//Process the registration
return View();
} 视图:
BoardRules.cshtml:
@* HTML Displaying Rules *@
<a href="@Url.Action("Register", new { ReadRules = 1 })">Accept Rules</a>Register.cshtml:
@using (Html.BeginForm("Registration", "[Controller Name]", new { ReadRules = 1 }))
{
@* Form Fields *@
<input type="submit" value="Process Registration" />
} Registration.cshtml
<h2>Congratz on Registering!</h2>发布于 2013-10-29 18:05:55
public ActionResult Register()
{
return View("boardrules"); //Default
}
public ActionResult Register(MyViewModel model)
{
if (model.ReadRules == 1)
{
model.ReadRules++; //Next time it won't be 1 but step 2
return View("registration",model);
}
else
{
//Do IF or Case for other step
}
return View("boardrules"); //Default
}https://stackoverflow.com/questions/19665762
复制相似问题