Asp.net MVC Actionlink动态添加路由值

时间:2014-05-02 15:43:18

标签: javascript html asp.net-mvc asp.net-mvc-4

我需要将系统本地日期时间值发送到控制器。我必须使用javascript,但动作链接从数据库动态列出。

我试试这个,但无法向控制器发送价值。

 function getLocalTime (obj) {
           debugger
            var time = new Date();
            var href = obj.getAttribute("href")
            href = href + '/&&LocalTime=' + time.toLocaleTimeString();
            this.href = href;

        }

这是我的行动链接

@Html.ActionLink(item.Name, "Index", "Restaurants", New With { .aaaa= Model.aaaa,.bbbb= item.bbbb},New With{.onmouseover="getLocalTime(this);"})

如何将本地时间值发送给控制器?

编辑:

控制器在这里;

  

功能索引(可选ByVal aaaa as aaaa =   Nothing,可选ByVal bbbb As Integer = 0,可选ByVal   cccc As Integer = 0,可选ByVal LocalTime As DateTime =   没什么)作为ActionResult

路线到这里;

  routes.MapRoute( _
name:="GetCitiesRestaurants", _
url:="Cities/SearchByCity/{aaaa}/{dddd}", _
defaults:=New With {.controller = "Cities", .action = "GetCitiesRestaurants", .aaaa= UrlParameter.Optional, .dddd= UrlParameter.Optional} _
)

我应该隐藏varriables以保护隐私

1 个答案:

答案 0 :(得分:2)

  

如何将本地时间值发送给控制器?

假设你有一个像这样的Anchor标签 -

<a href="#" id="ClickMe">Click me</a>

然后,您可以使用JQUERY AJAX以下列方式将本地日期发布到服务器控制器。将以下jquery点击函数与锚标记关联 -

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
    $(document).ready(function () {
        $("#ClickMe").click(function () {
            var datetime = new Date();
            jQuery.ajax({
                type: "POST",
                url: "@Url.Action("SendDate")",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify({ date: datetime, cccc : 10, bbbb : 20 }),
                success: function (data) { alert(data); },
                failure: function (errMsg) { alert(errMsg); }
            });
        });
    });
</script>

然后,如果您有以下控制器操作 -

    public ActionResult SendDate(DateTime date, int cccc, int bbbb)
    {
        return null;
    }

当您使用断点运行代码时,您将获得如下所示的日期 -

enter image description here