我的问题:
首先,我有一个搜索表单,用户在其中输入条件并将请求发送到适当的控制器索引操作。用户输入作为我创建的模型类型传入,只是为了保存数据。我将模型返回到视图中,然后在呈现视图之前,我使用 jquery 获取视图模型数据,并且我有一个 knockout.js/ajax 将“数据”发布到一个 jsonresult 操作,其中发生搜索过滤然后我更新使用 json 数据和敲除数据绑定的视图。
我的 jsonresult 操作需要一个用于表排序的字符串 sortByText(works) 和一个 ViewModel。但是当发生 ajax 调用时,我的 jsonresult 操作无法识别数据对象传递的值。
如何将“SearchFormModel”正确传递到 JSONresult 操作中?
AJAX
'self.options.formModel' 保存 Index 操作发送的我的数据;在调试时,我看到它有数据,但在下一步中没有发布到 jsonresult 操作,只有 sortByText。ajax 'data:' 只能识别字符串和 int 吗?
$.ajax({
type: 'POST',
url: Url,
data: { sortByText: selectedText, formModel: self.options.formModel },
dataType: "json"
})....etc
控制器
[HttpGet]
public ActionResult Index(string sortByText, SearchFormModel formModel)
{
var model = new SearchViewModel();
model.FormModel = formModel;
return View(model);
}
[HttpPost]
public JsonResult GetData(string sortByText, SearchFormModel formModel)
{
//return jsonData
}