我想创建一个注册网址,该网址会在MVC中使用网址参数预先填充注册页面。例如,我有3个文本格式输入txtName,txtEmail和txtCode。当用户点击URL中嵌入的名称,电子邮件和代码的注册链接时,他们将到达注册页面,这些字段已经填充,所以他们所要做的就是选择密码并单击注册。
这可以使用URL和仅查看来完成,还是需要涉及控制器或模型?
此示例中的URL如何显示www.somedomain.com/home/register
MVC中需要实现哪些代码?
答案 0 :(得分:1)
一种可行的方法是在DOMContentLoaded
上运行JavaScript,它将获取您的查询字符串参数并预先填充适用的表单字段。您也可以通过访问Request.QueryString
集合并填充适用的输入字段在服务器端执行此操作。
答案 1 :(得分:1)
MVC的方法是让控制器和模型都参与进来。
网址格式为http://example.com/home/register?Name=Anders
控制器非常简短:
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>
}