Asp.net 如何使用MVC将URL参数传递给表单字段
我想创建一个注册URL,在MVC中用URL参数预先填充注册页面。例如,我有3个文本表单输入txtName、txtmail和txtCode。当用户单击带有其姓名、电子邮件和嵌入在URL中的代码的注册链接时,他们将到达已填充这些字段的注册页面,因此他们所要做的就是选择密码并单击注册Asp.net 如何使用MVC将URL参数传递给表单字段,asp.net,asp.net-mvc,asp.net-mvc-4,parameters,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Parameters,我想创建一个注册URL,在MVC中用URL参数预先填充注册页面。例如,我有3个文本表单输入txtName、txtmail和txtCode。当用户单击带有其姓名、电子邮件和嵌入在URL中的代码的注册链接时,他们将到达已填充这些字段的注册页面,因此他们所要做的就是选择密码并单击注册 这可以仅使用URL和视图来完成,还是需要涉及控制器或模型 本例中的URL是什么样子的www.somedomain.com/home/register MVC中需要实现哪些代码(如果有的话) 一种可能的方法是在DOMCon
一种可能的方法是在
DOMContentLoaded
上运行JavaScript,它将获取查询字符串参数并预填充适用的表单字段。您也可以在服务器端通过访问请求.QueryString
集合并填充适用的输入字段来实现这一点。MVC实现这一点的方法是同时涉及控制器和模型
public ActionResult register(RegisterViewModel model)
{
return View(model);
}
ViewModel应包含表单中存在的所有属性:
public class RegisterViewModel
{
public string Name { get; set; }
public string Email { get; set; }
public string Code { get; set; }
}
在视图中,使用Html帮助程序构建表单
@model RegisterViewModel
// Html header, body tag etc goes here...
@using(Html.BeginForm())
{
@Html.LabeFor(m => m.Name)
@Html.EditorFor(m => m.Name)
@Html.ValidationMessageFor(m => m.Name)
// Rest of fields goes here
<button>Submit</button>
}
@model RegisterViewModel
//Html标题、正文标记等都在这里。。。
@使用(Html.BeginForm())
{
@LabeFor(m=>m.Name)
@EditorFor(m=>m.Name)
@Html.ValidationMessageFor(m=>m.Name)
//其余的田地都在这里
提交
}
我猜问题所有者可能也对ViewModel类以及它在视图中的转换方式感兴趣(强类型视图、TextBoxFor…)