Asp.net mvc 具有多个操作的MVC 1提交按钮
我正在创建一个房地产应用程序,我对如何显示buy和rent URL感到困惑 我有一个页面,有两个单选按钮用于购买和租赁 当用户单击搜索按钮时,我希望根据单选按钮选择在控制器上调用不同的操作,并导航到该url 例如,如果用户单击buy单选按钮并单击search,则操作将为buy,url将为/buy/properties 如果用户单击rent单选按钮并单击search,则操作将为rent,url将为/rent/properties 我只需要一个提交按钮,这是所谓的搜索和它调用不同的行动,根据单选按钮的选择Asp.net mvc 具有多个操作的MVC 1提交按钮,asp.net-mvc,Asp.net Mvc,我正在创建一个房地产应用程序,我对如何显示buy和rent URL感到困惑 我有一个页面,有两个单选按钮用于购买和租赁 当用户单击搜索按钮时,我希望根据单选按钮选择在控制器上调用不同的操作,并导航到该url 例如,如果用户单击buy单选按钮并单击search,则操作将为buy,url将为/buy/properties 如果用户单击rent单选按钮并单击search,则操作将为rent,url将为/rent/properties 我只需要一个提交按钮,这是所谓的搜索和它调用不同的行动,根据单选按钮
我不确定如何执行此任务?假设您的按钮I html如下所示:
<input type="button" id="btnSubmit" value="Search" />
如果你想发布表单,你可以使用这个。
Html代码:
<form action="" method="post" id="MyForm">
<label>
<input type="radio" name="StateType" value="Buy" />
Buy
</label>
<label>
<input type="radio" name="StateType" value="Rent" />
Rent
</label>
<input type="button" value="Submit" onclick="redirect()" />
</form>
购买
租
JQuery代码:<script src="~/Scripts/jquery.validate.min.js"></script>
<script>
function redirect() {
if ($("#MyForm").valid()) {
// if form isValid
var url = "";
var urlBuy = "@Url.Action("Buy","Home")";
var urlRent = "@Url.Action("Rent","Home")";
var selectedRadio = $("input[name='StateType']:checked").val();
if (selectedRadio == "Buy") {
url = urlBuy;
} else {
url = urlRent;
}
var frm = $(event.target).closest("form");
frm.attr("action", url);
frm.submit();
}
}
</script>
函数重定向(){
if($(“#MyForm”).valid(){
//如果表格有效
var url=“”;
var urlBuy=“@Url.Action”(“购买”、“主页”);
var urlRent=“@Url.Action”(“租金”、“房屋”)”;
var selectedRadio=$(“输入[name='StateType']:选中”).val();
如果(selectedRadio==“购买”){
url=urlBuy;
}否则{
url=urlRent;
}
var frm=$(event.target);
frm.attr(“操作”,url);
frm.submit();
}
}
祝你好运作为Javascript的替代方案,你只需将表单发布到一个控制器操作并从那里重定向即可
public ActionResult ActionName(PurchaseType purchaseType)
{
if (purchaseType == PurchaseType.Rent)
return RedirectToAction("Rent", "Index");
else
return RedirectToAction("Buy", "Index");
}
您需要使用javascript/jquery根据所选单选按钮来构建url。这个答案告诉了我正确的方向,谢谢。
<script src="~/Scripts/jquery.validate.min.js"></script>
<script>
function redirect() {
if ($("#MyForm").valid()) {
// if form isValid
var url = "";
var urlBuy = "@Url.Action("Buy","Home")";
var urlRent = "@Url.Action("Rent","Home")";
var selectedRadio = $("input[name='StateType']:checked").val();
if (selectedRadio == "Buy") {
url = urlBuy;
} else {
url = urlRent;
}
var frm = $(event.target).closest("form");
frm.attr("action", url);
frm.submit();
}
}
</script>
public ActionResult ActionName(PurchaseType purchaseType)
{
if (purchaseType == PurchaseType.Rent)
return RedirectToAction("Rent", "Index");
else
return RedirectToAction("Buy", "Index");
}