asp.net - 将 RouteValues 读入 Controller

标签 asp.net asp.net-mvc-3 routevalues

所以我有一个网址操作

<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

这很好,我想要这个。现在,当我 POST 创建教师时,如何获取 createAndAssign 和 TeacherID 值?

最佳答案

您可以在表单中的隐藏变量中设置查询字符串值,并在 GET 操作方法中呈现并在 POST 操作方法中接受该值。

GET 操作呈现的 View

@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      
}

如果您的 View 是强类型的(这是我个人的偏好),那么这很容易,

public ActionResult GET(string teacherID,string createdAndAssing)
{
   var yourVMObject=new YourViewModel();
   yourVMObject.TeacherID=teacherID;
   yourVMObject.CreateAndAssign=createdAndAssing;
   return View(createdAndAssing);
}

在你的强类型 View 中,

@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      
}

关于asp.net - 将 RouteValues 读入 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12497142/

相关文章:

c# - 什么 C# 功能允许使用 "object literal"类型表示法?

asp.net-mvc - ASP.net MVC RouteLink 和可选的routeValues

c# - 如何在 C# 中的 ActionLink html 帮助程序中指定 Controller

asp.net - 如何让 JQuery 智能感知在 aspx 文件中工作?

asp.net - 取消 ASP.NET 回调处理

c# - EPPlus 绑定(bind)后不计算公式输出

firefox - jQuery.post 表单仅在 Firefox 中提交奇怪的错误

javascript - 在 webgrid 中添加表格行时出现分页问题?

asp.net-mvc-3 - Telerik MVC 扩展和文化问题

c# - 设置 HttpCacheability.Public 是否也会在服务器上缓存页面?