Asp.net mvc 要在ASP.NETMVC中模拟回发吗
假设我有一个表单,表单有两个div容器。一个div容器有几个用于提交登录详细信息的文本框,另一个div也有几个与register相关的文本框。现在我的家庭控制器有两种操作方法,一种是登录,另一种是注册。我希望,当用户点击登录按钮,然后我将通过jquery提交表单,但在提交之前,我将更改操作url。当用户单击register按钮时,我希望以相同的方式调用register操作方法。请指导我如何使用jquery在mvc中实现这一点。请帮我提供示例代码 另一个人的回答和其他论坛一样Asp.net mvc 要在ASP.NETMVC中模拟回发吗,asp.net-mvc,Asp.net Mvc,假设我有一个表单,表单有两个div容器。一个div容器有几个用于提交登录详细信息的文本框,另一个div也有几个与register相关的文本框。现在我的家庭控制器有两种操作方法,一种是登录,另一种是注册。我希望,当用户点击登录按钮,然后我将通过jquery提交表单,但在提交之前,我将更改操作url。当用户单击register按钮时,我希望以相同的方式调用register操作方法。请指导我如何使用jquery在mvc中实现这一点。请帮我提供示例代码 另一个人的回答和其他论坛一样 @model 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”
,则输入namecommandName
并不重要,语法name=“commandName”正确吗?它应该是commandName=“login”还是commandName=“register”?请讨论一下。谢谢教授,我有点弄错了。您可以保留type='submit',并且应该删除$(“#btnSave”).closest(“form”).submit()代码>,表格将自动提交。看看固定的例子。在这种情况下,外部的@{…}
似乎没有做任何额外的事情,因为在使用的之外没有发生任何c代码。通过直接进入using语句执行@using(…){…}
并删除外部块,它可以缩短writer。