【发布时间】:2012-09-06 02:57:16
【问题描述】:
从 Ajax.BeginForm 方法调用 PartialView 时,我无法返回它。 Ajax 调用如下。
@{
ViewBag.Title = "ChargeCode 1";
Layout = "~/Views/Shared/_Search_Layout.cshtml";
}
<div class="span9">
<div class="page-header">
<h1>Charge Code1</h1>
</div>
@using (Ajax.BeginForm("SearchChargeCode1", "ChargeCodeSearch", new AjaxOptions
{
UpdateTargetId = "searchResults",
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
}))
{
<input type="text" name="chargeCode1" class="input-medium search-query" />
<input type="submit" class="btn" value="Search" />
<button type="button" class="btn">Clear Results</button>
}
<table id="searchResults">
</table>
</div>
在文本框中输入参数后,我单击提交按钮,然后它会将我带到 ChargeCodeSearchController 中的 SearchChargeCode1 partialviewresult 方法
public PartialViewResult SearchChargeCode1(string chargeCode1)
{
var chargecodes1 = db.ChargeCodes.Where(c => (!(String.IsNullOrEmpty(chargeCode1)) && c.NameChargeCode.Contains(chargeCode1))).Take(10);
return PartialView("ChargeCodeSearch/_FindChargeCodeSearchResults1", chargecodes1);
}
它应该然后返回位于 Views 文件夹中以下位置的 _FindChargeCodeSearchResults1 视图:
Views
->Shared
->->ChargeCodeSearch
->->->_FindChargeCodeSearchResults1
没有!
我在 PartialViewMethod 中放置了一个断点。它能够查询并找到一个结果列表并将其分配给chargecodes1变量,但是在它逐步执行代码的返回行之后,它只是返回到包含Ajax的视图,但它不会插入部分视图更新目标“searchResults”中的“ChargeCodeSearch/_FindChargeCodeSearchResults1”。
我在 Shared 下有一个 FirmSearch 和 MemberSearch 文件夹,它们执行完全相同的功能,但对象不同。那些工作。我不知道为什么这不起作用。
下面是应该返回的视图_FindChargeCodeSearchResult1的代码sn-p。创建此 cshtml 视图时,我将其创建为 PartialView。我没有为它分配母版页,也没有将它强输入到 ChargeCode 对象中。
@model IEnumerable<MLSMAS.Models.ChargeCode>
<table id="searchResults" class='table table-striped table-bordered table-condensed'>
<thead>
<tr>
<th>ChargeCode ID</th>
<th>ChargeCode Name</th>
<th>ChargeCode Price</th>
<th>Frequency</th>
<th>ChargeCode Description</th>
<th>Select</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.IdChargeCode)
</td>
<td>
@Html.DisplayFor(modelItem => item.NameChargeCode)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td>
@Html.DisplayFor(modelItem => item.Frequency)
</td>
<td>
@Html.DisplayFor(modelItem => item.DescChargeCode)
</td>
<td>
<a href="" onclick="setChargeCode1('@item.IdMember' '@item.Price');" class="setChargeCode1">Select</a>
</td>
</tr>
}
</tbody>
</table>
<script src="../../../Scripts/MLSMASJS.js" type="text/javascript"></script>
非常感谢任何帮助或建议。
【问题讨论】:
-
您能在 FireBug/IE-Chrome 开发控制台中查看您的 ajax 请求的响应是什么吗?顺便说一句,您应该将
<table id="searchResults">更改为<div id="searchResults">,因为您的部分中已经有<table>。
标签: c# asp.net-mvc-3 asp.net-ajax asp.net-mvc-partialview