Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何使用MVC将URL参数传递给表单字段_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Parameters - Fatal编程技术网

Asp.net 如何使用MVC将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

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

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

  • 本例中的URL是什么样子的www.somedomain.com/home/register

  • MVC中需要实现哪些代码(如果有的话)


  • 一种可能的方法是在
    DOMContentLoaded
    上运行JavaScript,它将获取查询字符串参数并预填充适用的表单字段。您也可以在服务器端通过访问
    请求.QueryString
    集合并填充适用的输入字段来实现这一点。

    MVC实现这一点的方法是同时涉及控制器和模型

  • 创建包含注册表字段的视图模型类
  • 添加视图模型作为控制器方法的单个参数
  • 将该视图模型直接发送到视图
  • URL的格式为

    控制器将非常短:

    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…)