首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将RouteValues读入控制器

将RouteValues读入控制器
EN

Stack Overflow用户
提问于 2012-09-19 22:45:05
回答 2查看 3.4K关注 0票数 2

所以我有一个Url操作

代码语言:javascript
运行
复制
<a href="@Url.Action("Create","Teacher", new { createAndAssign = true, teacherID = Model.AccountID })">Create new teacher & assign to account.</a>

它传入两个routeValues: createAndAssign和teacherID。

现在,当我转到我的教师/创建页面时,我的URL是这样的:

代码语言:javascript
运行
复制
.../Teacher/Create?createAndAssign=True&teacherID=ea817321-5633-4fdc-b388-5dba2c4a728e

这很好,我想要这个。现在,当我发布来创建我的老师时,我如何获取createAndAssign和teacherID的价值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-19 22:58:41

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

GET操作呈现的视图

代码语言:javascript
运行
复制
@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参数,以便在提交表单时可以使用它。

代码语言:javascript
运行
复制
[HttpPost]
public ActionResult Create(string teacher,string createAndAssign)
{
     //Save and Redirect      
}

如果您的视图是强类型的(这是我个人的偏好),那么它非常简单,

代码语言:javascript
运行
复制
public ActionResult GET(string teacherID,string createdAndAssing)
{
   var yourVMObject=new YourViewModel();
   yourVMObject.TeacherID=teacherID;
   yourVMObject.CreateAndAssign=createdAndAssing;
   return View(createdAndAssing);
}

在您的强类型视图中,

代码语言:javascript
运行
复制
@model YourViewModel
@using (Html.BeginForm())
{
 //Other form elements also
  @Html.HiddenFor(x=>x.TeacherID)
  @Html.HiddenFor(x=>x.CreateAndAssign)                                     
  <input type="submit" />
}

在您的POST操作中

代码语言:javascript
运行
复制
[HttpPost]
public ActionResult Create(YourViewModel model)
{
     //look for model.TeacherID
     //Save and Redirect      
}
票数 4
EN

Stack Overflow用户

发布于 2012-09-19 22:49:51

您可以从查询字符串中获取值,也可以作为控制器的参数获取,如下所示

代码语言:javascript
运行
复制
var x =Request.QueryString["createAndAssign"];

代码语言:javascript
运行
复制
public ActionResult Create(bool createAndAssign, string teacherID){


 return View();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12497142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档