Url.Action:如何将参数从View传递给Controller?

时间:2014-11-04 22:50:00

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

我在使用Url.Action将参数从我的视图传递到控制器时出现问题。

我的代码在视图中如下:

<form id="searchForm">
    <input type="text" name="search_criteria" />
    <input type="submit" value="Search" />
</form>

<div id="SearchDiv">

</div>

在我的剧本中:

$('#searchForm').submit(function (e) {
    e.preventDefault();

    $.ajax({
        url: '@Url.Action("Index_AddSearchCriteria", "Home", "search_criteria")',
        type: 'POST',
        dataType: 'html',
        success: function (result) {
            $('#SearchDiv').html(result);
        }
    })
})

在控制器中:

public PartialViewResult Index_AddSearchCriteria(string search_criteria)
        {
            ViewModel.SearchCriteria = search_criteria;

            return PartialView("SearchBar", ViewModel);
        }

如何通过Url.Action发送参数,以便可以将其作为Controller中的参数接受?

1 个答案:

答案 0 :(得分:2)

您需要使用data:参数

var data = { search_criteria: $("search_criteria).val() }; // add id="search_criteria" to the textbox
$.ajax({
    url: '@Url.Action("Index_AddSearchCriteria", "Home")',
    type: 'POST',
    data: data,
    dataType: 'html',
    success: function (result) {
        $('#SearchDiv').html(result);
    }
})

或者您可以将其简化为

$('#SearchDiv').load('@Url.Action("Index_AddSearchCriteria", "Home")', { search_criteria: $("search_criteria).val() });