Dav*_*avy 3 asp.net asp.net-mvc jquery partial-views
当我使用JQuery加载它时,我在ASP.Net MVC 1.0中获取部分视图时出现问题.
我有一个像这样的控制器:
public ActionResult Index() {
return View(_invoiceService.FindAllInvoices());
}
public ActionResult InvoiceSearchResults() {
return PartialView("InvoiceSearchResults",_invoiceService.FindAllInvoices());
}
Run Code Online (Sandbox Code Playgroud)
我有一个索引视图:
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.Script("/scripts/InvoiceSearch.js") %>
<h2>Search</h2>
<div class="SearchBar">
</div>
<div class="SearchResults"></div>
<p><%= Html.ActionLink("Create New", "Create") %></p>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
然后我有一个PartialView:
<table>
<tr>
<th></th>
<th>InvoiceId</th>
<th>InvoiceNo</th>
<th>SupplierId</th>
<th>InvoiceDate</th>
<th>TotalValue</th>
<th>InputDate</th>
<th>PaymentDueDate</th>
<th>InvoiceStatusId</th>
<th>AuthoriserId</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.ActionLink("Edit", "Edit", new { id=item.InvoiceId }) %> |
<%= Html.ActionLink("Details", "Details", new { id=item.InvoiceId })%>
</td>
<td><%= Html.Encode(item.InvoiceId) %></td>
<td><%= Html.Encode(item.InvoiceNo) %></td>
<td><%= Html.Encode(item.SupplierId) %></td>
<td><%= Html.Encode(String.Format("{0:g}", item.InvoiceDate)) %></td>
<td><%= Html.Encode(String.Format("{0:F}", item.TotalValue)) %></td>
<td><%= Html.Encode(String.Format("{0:g}", item.InputDate)) %></td>
<td><%= Html.Encode(String.Format("{0:g}", item.PaymentDueDate)) %></td>
<td><%= Html.Encode(item.InvoiceStatusId) %></td>
<td><%= Html.Encode(item.AuthoriserId) %></td>
</tr>
<% } %>
</table>
Run Code Online (Sandbox Code Playgroud)
我有一些JQuery:
$(document).ready(function() {
$("#InvoiceDropDown").change(function() {
$("#SearchResults").load("/Invoice/InvoiceSearchResults/");
});
});
Run Code Online (Sandbox Code Playgroud)
我删除了一些我知道正在努力使问题更易于阅读的代码.
当我点击我的DropDownList它调用JQuery,转到我的控制器,似乎运行部分类但它不呈现任何东西.
我已经尝试过邪恶的唐纳德的回答,同样的事情也发生了,所以也许是某种愚蠢的我在某处做过的事情?
任何帮助或一般建议在这里非常感谢.
我有一个解决方案:
而不是使用
$("#SearchResults").load("/Invoice/InvoiceSearchResults/");
Run Code Online (Sandbox Code Playgroud)
尝试使用$ .ajax()来请求控制器,然后将回复放在html中.我有这个成功的工作,我会试着解释下面的答案:
控制器方法
保持不变
public ActionResult InvoiceSearchResults()
{
return PartialView("InvoiceSearchResults",_invoiceService.FindAllInvoices());
}
Run Code Online (Sandbox Code Playgroud)
Ajax Call
$.ajax({
url: "/Invoice/InvoiceSearchResults/",
type: 'GET',
dataType: 'html', // <-- to expect an html response
success: doSubmitSuccess
});
Run Code Online (Sandbox Code Playgroud)
OnSuccess js方法
function doSubmitSuccess(result)
{
$('div#MyDiv').html(result);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11567 次 |
| 最近记录: |