【问题标题】:Java Script to MVC: Controller Variable Passing via ActionlinkJavascript 到 MVC:通过 Actionlink 传递控制器变量
【发布时间】:2013-09-24 19:38:12
【问题描述】:

使用:vs'12 Razor asp.net MVC4 Internet App Template 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 个变量,因为我在另一个页面上运行此代码,但它不适用于多个。

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

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

【问题讨论】:

  • 您是否尝试过使用 GET 参数,例如 some-url/?param1=test&param2=test2 ?还要注意this 指向点击处理程序中的#AddData 元素。如果要更改当前位置,请使用window.location.href = 'someurl';
  • 我刚刚尝试了+ Xpro + "&" + "cnty=" + Xcnty + "&" + "twn=" + Xtwn + "&" + "rng=" + Xrng + "&" + "sec=" + Xsct;,但没有"?",让我添加这个

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


【解决方案1】:

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

? 是必要的,用于指示查询字符串参数的开始。

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

【讨论】:

  • 感谢您提供的提示:encodeURIComponent 从现在开始使用它
猜你喜欢
  • 2013-10-21
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
相关资源
最近更新 更多