【问题标题】:Passing Multiple Parameters to Ajax.ActionLink将多个参数传递给 Ajax.ActionLink
【发布时间】:2013-01-07 01:48:11
【问题描述】:

我的 MVC 4 项目中有一个视图和部分视图。我在视图中有 3 个文本框、一个复选框和一个下拉列表。我正在使用 ajax.actionlink 方法来调用我的控制器、Action 并传递参数并从局部视图中获取结果并将它们显示在视图的 div 标记中页。

这是我的代码。

@Html.TextBoxFor(m=>m.searchParameter.cityName)
@Html.TextBoxFor(m=>m.searchParameter.CountryName)
@Html.TextBoxFor(m=>m.searchParameter.StateName)

@Ajax.ActionLink("submit", "DisplaySearchResult", "Home"
      , new { searchParameter =  Model.searchParameter }
     , new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "Results", InsertionMode = InsertionMode.Replace }, new { id = "DisplaySearchResult" }).

问题是无法将参数传递给模型。我是 MVC4 的新手。有没有办法使用 jquery 或 javascript 传递参数?我不想在搜索结果期间加载该页面。

【问题讨论】:

    标签: razor asp.net-mvc-4 asp.net-ajax


    【解决方案1】:

    如我所见,您正在尝试实现一个搜索表单。在这种情况下,我避免使用ViewModel,通常这样做:

    @Html.TextBox("CityName", string.Empty)
    @Html.TextBox("CountryName", string.Empty)
    @Html.TextBox("StateName", string.Empty)
    

    然后您可以使用一些 jQuery 将值传递给您的操作方法:

    $("#submit").click(function() {
    
                var $form = $('form');
    
                $.ajax({
                    type: "GET",
                    cache: false,
                    url: '@Url.Action(ActionName, ControllerName)',
                    data: $form.serialize(),
                    success: loadResult
                });
    
    function loadResult(data)
            {
                $("#container").html(data);
            }
    

    只需确保您的操作方法具有适当的参数CityName, CountryName, StateName,以便正确绑定值。

    【讨论】:

      猜你喜欢
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2011-10-10
      • 2013-09-15
      • 2010-10-09
      • 2012-09-05
      • 2017-06-14
      相关资源
      最近更新 更多