Javascript到MVC:控制器变量通过Actionlink传递

时间:2013-09-24 19:38:13

标签: javascript asp.net-mvc parameter-passing

使用:vs'12 Razor asp.net MVC4互联网应用模板EF Code First

  • 我想要操纵的Actionlink

    @Html.ActionLink("Download", "ShowOpenAcreageSummaryReport", new { controller = "DataToExcel" }, new { id = "AddData" })
    
  • script尝试此

    $('#AddData').click(function (e) {
    
    var optVal = $("#OptionsDrop").val();
    var Xpro = $("#Prospects").val()
    var Xcnty = $("#Countys").val()
    var Xtwn = $("#TownShips").val()
    var Xrng = $("#Ranges").val()
    var Xsct = $("#Sections").val()
    
    
        var href = "/DataToExcel/ShowLPRStandardLeaseReport/" + Xpro + Xcnty + Xtwn + Xrng + Xsct;
        this.href = ""; //clears out old href for reuse
        this.href = href; //changes href value to currently slected dropdown value
    

    }

  • actionResult接受这些传递的值

    public ActionResult ShowLPRStandardLeaseReport(string pro, string cnty, string twn, string rng, string sec)
    

现在我知道这适用于1个变量,因为我在另一个页面上运行此代码,但它不能用于多个。

我也尝试在变量之间添加+ "/" +,这对结果没有影响。

如何更改我的代码以便能够传递所有变量?

1 个答案:

答案 0 :(得分:1)

您是否尝试使用some-url/?param1=test&param2=test2等GET参数?另请注意,this指向点击处理程序中的#AddData元素。如果要更改当前位置,请使用window.location.href = 'someurl';

?是表示查询字符串参数开始的必要条件。

另请注意,您应该使用encodeURIComponent对值进行编码,以确保生成有效的网址。