我在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传递参数吗? 我不想在搜索结果期间加载页面。
如我所见,您正在尝试实施搜索表单。 在这种情况下,我避免使用ViewModel,通常这样做:
@Html.TextBox("CityName", string.Empty)
@Html.TextBox("CountryName", string.Empty)
@Html.TextBox("StateName", string.Empty)
然后,您可以使用一些jQuery将值传递给您的action方法:
$("#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,以便正确绑定值。