我正在获取列表视图json结果,我想重定向到不同的视图并根据我的json显示结果 (我希望我清楚)这就是我所做的
<script type="text/javascript">
$(document).ready(function () {
$("#term").autocomplete({
source: function (request, response) {
$.ajax({
url: "Home/GetSubjectsName",
data: "{'term': '" + request.term + "' }",
dataType: 'json',
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data, function (item) {
return {
label: item.value,
value: item.value,
id: item.id,
}
var url = '@Url.Action("bla", "blaaaa")';
}))
}
});
},
minLength: 2,
});
});
我的jsonlook喜欢这样:
public JsonResult GetSubjectsName(string term)
{
var results = db.subjects.Where(s => term == null ||
s.SubjectName.ToLower().Contains(term.ToLower())).Select(x => new
{ id = x.SubjectId, value = x.SubjectName }).Distinct().ToList();
return Json(results, JsonRequestBehavior.AllowGet);
}
我要显示结果的动作是(而不是部分视图)
public ActionResult bla(字符串术语) { IEnumerable serach =来自db.subjects.Where中的sub(t =&gt; t.SubjectName.Contains(term))。Distinct() 选择新的SearchResultsViewModel {
Created = sub.Created,
Gender = sub.Gender,
OccupationDecription = sub.OccupationDecription,
Image = sub.Image,
SubjectName = sub.SubjectName
};
ViewBag.term = term;
return RedirectToAction("bla", "home", serach.ToList());
}
我的观点:
@model IEnumerable<MyProJect.ViewModels.SearchResultsViewModel>
foreach ....
我需要的是转到不同的操作并显示数据
答案 0 :(得分:0)
这里有一些可能有用的代码。你的帖子仍然有点不清楚,所以我根据你所描述的内容填写缺失的部分。我没有尝试过设计表单布局。
主页/ Index.cshtml:
@using( Html.BeginForm("bla") ) {
@Html.LabelFor(model => model.term)
@Html.EditorFor(model => model.term)
<button type="submit">Submit</button>
}
<script type="text/javascript">
jQuery(function ($) {
$("#term").autocomplete({ source: '@Url.Action("GetSubjectsName")', autoFocus: true, minLength: 2 });
});
</script>
您的自动填充功能应更改为:
public JsonResult GetSubjectsName(string term)
{
return Json(db.subjects
.Where(s => term == null ||
s.SubjectName.ToLower()
.Contains(term.ToLower()))
.OrderBy(x => x.SubjectName)
.Select(x => x.SubjectName)
.Distinct(), JsonRequestBehavior.AllowGet);
}
据我所知,其他一切都应按预期工作。