使用jquery变量作为.net MVC中ActionLink的参数

Using jquery variable as an argument for an ActionLink in .net MVC

本文关键字:ActionLink 参数 MVC net jquery 变量 使用      更新时间:2023-09-26

只有我一个人,或者在javascript中处理变量真的很困难?

我的问题是,我想把javascript函数的一些结果用在MVC.net控制器中,但我做不到!

1.-我的JavaScript函数在一个视图上运行:

     $(document).ready(function () {
           $('#go').click(function () {
             // test for presence of geolocation
             if (navigator && navigator.geolocation) {
                 navigator.geolocation.getCurrentPosition(geo_success, geo_error);
             } else {
                 // nothing at this moment.

   function geo_success(position) {
         printLatLong(position.coords.latitude, position.coords.longitude);
     }

除了printLatLong函数外,我还想使用参数position.coord.latitude通过Html.ActionLink将其发送到控制器,如下所示:

    @Html.ActionLink("Link to Controller", "Action", "Controller", position.coords.latitude)

但是我不能使用position.coords.latitude,因为现在我已经不能使用了。我只想在ActionLink中使用该值作为参数,这太难了吗?:(

提前感谢您的帮助。

只需使用html锚点并通过jquery操作href属性即可。

脚本:

function geo_success(position) {
    printLatLong(position.coords.latitude, position.coords.longitude);
    var url = '@Url.Action("Geo", "Home")';
    // grab the anchor and modify the url
    $("#geolink").attr("href", url += "?latitude=" + position.coords.latitude);
}

在您看来

<a id="geolink">GeoLink</a>

HomeController.cs

    public ActionResult Geo(int latitude)
    {
        throw new Exception(String.Format("Do something with: {0}", latitude));
    }