在提交之前将数据从一个表单传递到另一个表单

时间:2016-03-12 02:41:28

标签: jquery html asp.net-mvc forms razor

我在一个页面上有两个表单。 在我的第一个表单中,我有所有的字段数据(名称,用户名,密码等)。在我的第二种形式中,我只有一个按钮。提交的两个表单都会在我的控制器中执行不同的操作。

问题 - 当我从按钮点击提交表单2时,表单1中的任何字段都不会通过ViewModel传递给控制器​​。防爆。行动" ExternalLogin"没有获得"性别"字段值

我如何通过"性别"在提交第二张表格之前,从第一张表格到第二张表格? JQuery的?我尝试将HTML.HiddenFor(m => m.Gender)放在我的第二种形式中,但那不起作用。

以下是一些示例代码。



Native




1 个答案:

答案 0 :(得分:0)

这完美地工作并做你想做的事

控制器代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Temp.Models;

namespace Temp.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public void Register(MyModel mymodel)
        {

        }

        [HttpPost]
        public void ExternalLogin(int mygender)
        {

        }
    }
}

型号代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Temp.Models
{
    public class MyModel
    {
        public enum Gender { Male = 1, Female = 2 }

        public Gender gender { get; set; }
    }
}

查看代码

@model Temp.Models.MyModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<script src="~/scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
    function OnChange()
    {
        $("#mygender").val($("#genderId").val())    
    }

</script>

@using (Html.BeginForm("Register", "Home", FormMethod.Post, new { @class = "form-horizontal", @id = "registerForm", role = "form", style = "margin-left: 20px" }))
{
    <div id="formGroup1" class="form-group">
        @Html.LabelFor(m => m.gender, new { @id = "genderLabel" })
        <div class="">
            @Html.EnumDropDownListFor(m => m.gender, new { @id = "genderId", @class = "selectpicker form-control",@onchange="javascript:OnChange();" })
        </div>
    </div>
    <button type="submit" class="btn btn-default btn-lg">Connect</button>

}

@using (Html.BeginForm("ExternalLogin", "Home", FormMethod.Post, new { @id = "registerForm", role = "form", style = "margin-left: 20px" }))
{
    <input type="hidden" id="mygender" name="mygender"/>
    <button type="submit" class="btn btn-default btn-lg">Connect</button>
}