ajax如何获得model,ajax调用后,viewmodel内容为null吗?

I am creating an ASP.NET MVC application. I am currently developing a search page where both the search box and the table of results are displayed on the same page. To do this I have used Partial Views and AJAX/JSON calls with a viewmodel. After entering the two search terms in the textbox, both are null in the controller after being passed through ajax.

Here is the code:

ViewModel:

public class ExampleViewModel

{

public string search { get; set; }

public string search2 { get; set; }

}

Controller:

[HttpPost]

public ActionResult Search(ExampleViewModel searchTerm)

{

var searchList = db.UserLists.Where(x => x.LastName.Contains(searchTerm.search));

return PartialView("_SearchResultsPartial", searchList);

}

Body of Index View:

@Html.TextBoxFor(model => model.search)

@Html.TextBoxFor(model => model.search2)

var exViewModel = {

search: $('#search').val(),

search2: $('#search2').val()

}

function getSearchResults() {

$.ajax({

type: "POST",

data: JSON.stringify(exViewModel),

dataType: "json",

contentType: "application/json",

url : "/View/Search/",

success: function (result) {

$("#search-results").html(result);

}

});

}

Again, after setting a breakpoint on the Search [POST] method, the ExampleViewModel's terms are null.

Talk1:

In addition to the accepted answer, suggest you just wrap the elements in

and use data: $('form').serialize(), (and remove contentType: "application/json",)

Solutions1

At first sight, it seems that you have to retrieve the values within the function scope:

function getSearchResults() {

//Read these values on button click

var exViewModel = {

search: $('#search').val(),

search2: $('#search2').val()

}

$.ajax({

type: "POST",

data: JSON.stringify(exViewModel),

dataType: "json",

contentType: "application/json",

url : "/View/Search/",

success: function (result) {

$("#search-results").html(result);

}

});

}

Otherwise, the exViewModel is just determined on page load.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值