0

我想创建一个注册 URL,它将使用 MVC 中的 URL 参数预先填充注册页面。例如,我有 3 个文本表单输入 txtName、txtEmail 和 txtCode。当用户单击 URL 中嵌入了他的姓名、电子邮件和代码的注册链接时,他们将到达注册页面,其中已经填充了这些字段,因此他们所要做的就是选择一个密码并单击注册。

  1. 这可以仅使用 URL 和视图来完成,还是我需要涉及控制器或模型?

  2. 此示例中的 URL 将如何显示 www.somedomain.com/home/register

  3. 如果有的话,需要在 MVC 中实现哪些代码?

4

2 回答 2

1

执行此操作的 MVC 方法是同时涉及控制器和模型。

  1. 创建一个包含注册表单字段的视图模型类。
  2. 添加视图模型作为控制器方法的单个参数。
  3. 将该视图模型直接发送到视图。

URL 的格式为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>
}
于 2013-11-13T15:23:16.967 回答
1

一种可能的方法是在 上运行 JavaScript,DOMContentLoaded它将获取您的查询字符串参数并预填充适用的表单字段。您还可以通过访问Request.QueryString集合并填充适用的输入字段在服务器端执行此操作。

于 2013-11-13T15:22:57.653 回答