所以我有一个Url操作
<a href="@Url.Action("Create","Teacher", new { createAndAssign = true, teacherID = Model.AccountID })">Create new teacher & assign to account.</a>它传入两个routeValues: createAndAssign和teacherID。
现在,当我转到我的教师/创建页面时,我的URL是这样的:
.../Teacher/Create?createAndAssign=True&teacherID=ea817321-5633-4fdc-b388-5dba2c4a728e这很好,我想要这个。现在,当我发布来创建我的老师时,我如何获取createAndAssign和teacherID的价值?
发布于 2012-09-19 22:58:41
您可以在表单的隐藏变量中设置QueryString值,并在GET操作方法中呈现,并在POST操作方法中接受该值。
由GET操作呈现的视图
@using (Html.BeginForm())
{
//Other form elements also
@Html.Hidden("teacher",@Request.QueryString["teacherID"] as string)
@Html.Hidden("createAndAssign",@Request.QueryString["createAndAssign"]
as string)
<input type="submit" />
}现在,在您的HttpPost操作方法中有一个teacher参数和一个createAndAssign参数,以便在提交表单时可以使用它。
[HttpPost]
public ActionResult Create(string teacher,string createAndAssign)
{
//Save and Redirect
}如果您的视图是强类型的(这是我个人的偏好),那么它非常简单,
public ActionResult GET(string teacherID,string createdAndAssing)
{
var yourVMObject=new YourViewModel();
yourVMObject.TeacherID=teacherID;
yourVMObject.CreateAndAssign=createdAndAssing;
return View(createdAndAssing);
}在您的强类型视图中,
@model YourViewModel
@using (Html.BeginForm())
{
//Other form elements also
@Html.HiddenFor(x=>x.TeacherID)
@Html.HiddenFor(x=>x.CreateAndAssign)
<input type="submit" />
}在您的POST操作中
[HttpPost]
public ActionResult Create(YourViewModel model)
{
//look for model.TeacherID
//Save and Redirect
}发布于 2012-09-19 22:49:51
您可以从查询字符串中获取值,也可以作为控制器的参数获取,如下所示
var x =Request.QueryString["createAndAssign"];或
public ActionResult Create(bool createAndAssign, string teacherID){
return View();
}https://stackoverflow.com/questions/12497142
复制相似问题