Asp.net mvc 具有多个操作的MVC 1提交按钮

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 我只需要一个提交按钮,这是所谓的搜索和它调用不同的行动,根据单选按钮

我正在创建一个房地产应用程序,我对如何显示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");
}