将数据发送到部分视图
Send data to partial view
想要使用返回数据的部分视图来实现搜索功能。
我的html:
<select id="searchSelect">
<option value="All">All</option>
<option value="Title">Title</option>
<option value="Category">Category</option>
<option value="ISBN">ISBN</option>
</select>
@Html.DropDownList("Categories", "Select Category")
<input type="text" id="SearchBy" placeholder="sometext" />
<a href="javascript:void(0);" class="search">Search</a>
现在,如何将这些值传递给局部视图?? - 以及如何加载部分??
我做了这个功能:
$(document).on("click", ".search", function () {
var searchBy = $("#searchSelect option:selected").val();
if (searchBy == "All") {
var text = $("#SearchBy").val();
$.ajax({
type: "POST",
url: "Search",
data: JSON.stringify({ "data": text }),
success: function (r) {
$(".load").html(r.data);
}
});
}
});
但我意识到我应该使用这种方式 JSON。
您必须在您的默认控制器中实现 Search
操作到 return PartialViewResult
,然后在 ajax 请求的成功回调中您将收到所需的 html.
Ajax调用:
[ ... ]
var text = $("#SearchBy").val();
$.ajax({
type: "POST",
url: "Search",
contentType: "application/json", // Specify the content type
data: JSON.stringify({ "data": text }), // Here you pass data to the controller's action
success: function (response) {
$(".load").html(response);
}
});
[ ... ]
在 HomeController 中搜索操作:
public ActionResult Search(string data)
{
// Here use data, call some service or whatever
MyModel myModel = myService.GetMyModel();
[ ... ]
return PartialView(someModel);
}
Search.cshtml局部视图:
@model MyModel
@{
Layout = null;
}
<h1>@Model.Prop1</h1>
<h2>@Model.Prop2</h2>
[ ... ]
想要使用返回数据的部分视图来实现搜索功能。
我的html:
<select id="searchSelect">
<option value="All">All</option>
<option value="Title">Title</option>
<option value="Category">Category</option>
<option value="ISBN">ISBN</option>
</select>
@Html.DropDownList("Categories", "Select Category")
<input type="text" id="SearchBy" placeholder="sometext" />
<a href="javascript:void(0);" class="search">Search</a>
现在,如何将这些值传递给局部视图?? - 以及如何加载部分??
我做了这个功能:
$(document).on("click", ".search", function () {
var searchBy = $("#searchSelect option:selected").val();
if (searchBy == "All") {
var text = $("#SearchBy").val();
$.ajax({
type: "POST",
url: "Search",
data: JSON.stringify({ "data": text }),
success: function (r) {
$(".load").html(r.data);
}
});
}
});
但我意识到我应该使用这种方式 JSON。
您必须在您的默认控制器中实现 Search
操作到 return PartialViewResult
,然后在 ajax 请求的成功回调中您将收到所需的 html.
Ajax调用:
[ ... ]
var text = $("#SearchBy").val();
$.ajax({
type: "POST",
url: "Search",
contentType: "application/json", // Specify the content type
data: JSON.stringify({ "data": text }), // Here you pass data to the controller's action
success: function (response) {
$(".load").html(response);
}
});
[ ... ]
在 HomeController 中搜索操作:
public ActionResult Search(string data)
{
// Here use data, call some service or whatever
MyModel myModel = myService.GetMyModel();
[ ... ]
return PartialView(someModel);
}
Search.cshtml局部视图:
@model MyModel
@{
Layout = null;
}
<h1>@Model.Prop1</h1>
<h2>@Model.Prop2</h2>
[ ... ]