gpt4 book ai didi

asp.net - 从 JQuery 加载部分 View 未显示在 MVC 中

转载 作者:行者123 更新时间:2023-12-01 00:42:01 24 4
gpt4 key购买 nike

当我使用 JQuery 加载部分 View 时,在 ASP.Net MVC 1.0 中呈现部分 View 时遇到问题。

我有一个像这样的 Controller :

    public ActionResult Index() {
return View(_invoiceService.FindAllInvoices());
}

public ActionResult InvoiceSearchResults() {
return PartialView("InvoiceSearchResults",_invoiceService.FindAllInvoices());
}

我有一个索引 View :

<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>

然后我有一个 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>

我有一些 JQuery:

$(document).ready(function() {
$("#InvoiceDropDown").change(function() {
$("#SearchResults").load("/Invoice/InvoiceSearchResults/");
});
});

我删除了一些我知道可以使问题更易于阅读的代码。

当我单击 DropDownList 时,它会调用 JQuery,转到我的 Controller ,并且似乎运行部分类,但它不会呈现任何内容。

我已经尝试过邪恶唐纳德的答案,同样的事情发生了,所以也许我在某个地方做了一些愚蠢的事情?

非常感谢这里的任何帮助或一般建议。

最佳答案

我有一个解决方案给你:

而不是使用

$("#SearchResults").load("/Invoice/InvoiceSearchResults/");

尝试使用 $.ajax() 来请求 Controller ,然后将回复放入 html 中。我已经成功地完成了这个工作,我将尝试解释以下答案:

Controller 方法

保持不变

public ActionResult InvoiceSearchResults()
{
return PartialView("InvoiceSearchResults",_invoiceService.FindAllInvoices());
}

Ajax 调用

$.ajax({
url: "/Invoice/InvoiceSearchResults/",
type: 'GET',
dataType: 'html', // <-- to expect an html response
success: doSubmitSuccess
});

OnSuccess js方法

function doSubmitSuccess(result)
{
$('div#MyDiv').html(result);
}

关于asp.net - 从 JQuery 加载部分 View 未显示在 MVC 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1532789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com