Url.Action:如何将参数从视图传递到控制器?

Posted

技术标签:

【中文标题】Url.Action:如何将参数从视图传递到控制器?【英文标题】:Url.Action: How to Pass Parameter from View to Controller? 【发布时间】:2015-01-01 00:23:02 【问题描述】:

我在使用 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】:

需要使用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() );

【讨论】:

以上是关于Url.Action:如何将参数从视图传递到控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数从视图传递到控制器?

如何使用 AJAX 将数据从视图传递到控制器

CodeIgniter:将参数从视图传递到控制器?

如何将参数从容器视图的父 ViewController 传递到该容器视图的 PageViewController?

将参数从视图传递到控制器

C# MVC 使用 dotnetfiddle 将参数从视图传递到控制器