Yas*_*sir 3 asp.net-mvc jquery json partial-views
背景:
我正在开发一个ASP.NET MVC应用程序,它在主页面上有3个部分(基于Razor引擎).第一部分具有用户填写的搜索条件列表.第二部分应该根据传入的数据显示ParameterParts列表.第三部分应该根据传入的数据显示规范列表.我需要在Controller中调用方法来填充我的第二和第三部分视图.
问题:
所有三个部分的父视图(index.cshtml)的代码
<div class="prepend-top span-24 last" id="searchPage">
<div class="span-24 last">
@Html.Partial("_Search")
</div>
<div class="span-24 last" id="parameterResults">
@Html.Partial("_ParameterParts")
</div>
<div class="span-24 last" id="searchSpecResults">
@Html.Partial("_Specifications")
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
第一部分代码(_Search.cshtml):
// Post the object to the server using jQuery
$.ajax({
url: '@Url.Action("ParameterParts")',
type: 'POST',
dataType: 'html',
data: dataToPass,
error: function (data) { alert('Something Went Wrong'); },
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert('Success P');
$("parameterResults").html(data);
}
});
Run Code Online (Sandbox Code Playgroud)
此代码使用dataToPass参数正确调用ParameterParts方法.
这是我用于控制器方法的代码:
[HttpPost]
public ActionResult ParameterParts(CriteriaViewModel vm)
{
List<ParameterPart> parameterParts = new List<ParameterPart>();
//Some logic to populate parameterParts using the passed in object
return PartialView("_ParameterParts", parameterParts);
}
Run Code Online (Sandbox Code Playgroud)
第二部分代码:
@model IEnumerable<SmartPlex.Web.SmartPlex.ODataService.ParameterPart>
<table>
<tr>
<th>
Part Number
</th>
<th>
Description
</th>
</tr>
@if (Model != null)
{
foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PartNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
</tr>
}
}
</table>
Run Code Online (Sandbox Code Playgroud)
我不包括第3部分,因为它与第2部分相同.如何使用上述方法更新我的部分?
Run Code Online (Sandbox Code Playgroud)dataType: 'dataToPass', data: json,
dataType是您期望从服务器返回的数据类型.如果你要返回html,哪个不应该是json.
data是要发送到服务器的数据.
更新:
你错过了#,你的选择器不正确.如果您的HTML是这样的:
<div class="span-24 last" id="parameterResults">
@Html.Partial("_ParameterParts")
</div>
Run Code Online (Sandbox Code Playgroud)
你的代码应该是这样的:
$("#parameterResults").html(data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8606 次 |
| 最近记录: |