Asp.net mvc 要在ASP.NETMVC中模拟回发吗

Asp.net mvc 要在ASP.NETMVC中模拟回发吗,asp.net-mvc,Asp.net Mvc,假设我有一个表单,表单有两个div容器。一个div容器有几个用于提交登录详细信息的文本框,另一个div也有几个与register相关的文本框。现在我的家庭控制器有两种操作方法,一种是登录,另一种是注册。我希望,当用户点击登录按钮,然后我将通过jquery提交表单,但在提交之前,我将更改操作url。当用户单击register按钮时,我希望以相同的方式调用register操作方法。请指导我如何使用jquery在mvc中实现这一点。请帮我提供示例代码 另一个人的回答和其他论坛一样 @model Mvc

假设我有一个表单,表单有两个div容器。一个div容器有几个用于提交登录详细信息的文本框,另一个div也有几个与register相关的文本框。现在我的家庭控制器有两种操作方法,一种是登录,另一种是注册。我希望,当用户点击登录按钮,然后我将通过jquery提交表单,但在提交之前,我将更改操作url。当用户单击register按钮时,我希望以相同的方式调用register操作方法。请指导我如何使用jquery在mvc中实现这一点。请帮我提供示例代码

另一个人的回答和其他论坛一样

@model MvcForums.Models.StudentModel 

@{ 

    using(@Html.BeginForm("Create","Student", FormMethod.Post)) 
    { 

        <label> Name</label> 
        @Html.TextBoxFor(m=>m.FirstName) <br/> 
        <label> From country:</label> 
        @Html.DropDownListFor(m=>m.CountryId, Model.Countries,"--please select-- ") <br/> 

        <input id="btnSave" value ="Login" type="submit" name="commandName"/> 
        <input id="btnRegister" value ="Register" type="submit" name="commandName"/> 
    } 

}


[HttpPost] 
public ActionResult Create(StudentModel studentModel, string commandName) 
{ 

    if(commandName == "Login") 
    { 

    } 
    else if(commandName == "Register") 
    { 

    } 

    return View("Index"); 
}
这两个按钮的名称都是
commandName
?对吗

当用户单击任何按钮时,按钮名称将如何传递给

public ActionResult Create(StudentModel studentModel, string commandName)
Create()
方法?请告诉我如何隐式地将命令名传递给
Create(),以及服务器端的commandName
变量如何保存按钮名

读了你的代码后,我有太多的困惑。如果可能,请详细讨论我的所有观点。谢谢

我想,当用户点击登录按钮,然后我会提交表格 通过jquery,但在提交之前,我将更改操作url。相同的 当用户单击register时,我希望调用register操作方法的方式 按钮

1。点击按钮时的事件:

$(function(){
     $("#btnSave").click(function(){
        $("#btnSave").closest("form").attr("action", "/home/test");
     });

});
<form method="POST" action="/home/test1" >

    <input id="btnSave" value="Login" type="submit" name="commandName"/>

</form>
  [HttpPost]
    public ActionResult Test(string commandName)
    {
        return null;
    }
2。标记:

$(function(){
     $("#btnSave").click(function(){
        $("#btnSave").closest("form").attr("action", "/home/test");
     });

});
<form method="POST" action="/home/test1" >

    <input id="btnSave" value="Login" type="submit" name="commandName"/>

</form>
  [HttpPost]
    public ActionResult Test(string commandName)
    {
        return null;
    }
1) Razor语法参考

2)
不是特定的html5标记,但它在html5中具有附加属性

3) 您可以构建包含指定文本和值的
SelectListItem
IEnumerable


4) 如果您不想在服务器端捕获客户端值
value=“Login”
,则输入
name
commandName
并不重要,

语法name=“commandName”正确吗?它应该是commandName=“login”还是commandName=“register”?请讨论一下。谢谢教授,我有点弄错了。您可以保留type='submit',并且应该删除
$(“#btnSave”).closest(“form”).submit(),表格将自动提交。看看固定的例子。在这种情况下,外部的
@{…}
似乎没有做任何额外的事情,因为在使用
之外没有发生任何c代码。通过直接进入using语句执行
@using(…){…}
并删除外部块,它可以缩短writer。