根据用户按钮操作加载不同的局部视图
本文关键字:局部 视图 加载 用户 按钮 操作 | 更新日期: 2023-09-27 18:21:11
我有一个asp.net MVC应用程序。我正在尝试编码,以便根据选择的3个按钮中的任何一个加载不同的局部视图。我正在尽力关注这篇文章http://forums.asp.net/t/1981845.aspx?Load+不同+局部+视图+基于+用户+操作+但它目前返回的错误如下:
System.Web.Mvc.dll中出现类型为"System.InvalidOperationException"的异常,但未在用户代码中进行处理其他信息:未找到部分视图"UserAccountInfoView",或者没有视图引擎支持搜索的位置。搜索了以下位置:
我想用aspx代替rajor。视图如下:
<script>
$(function() {
$('#InfoButton').on("click", function() {
$.get('@Url.Action("InfoAction", "HardwareRequisitionController")', function (data) {
$( "#myContentView" ).html( data );
});
$('#NotesButton').on("click", function() {
$.get('@Url.Action("NotesAction", "HardwareRequisitionController")', function (data) {
$( "#myContentView" ).html( data );
});
$('#OrdersButton').on("click", function() {
$.get('@Url.Action("OrdersAction", "HardwareRequisitionController")', function (data) {
$( "#myContentView" ).html( data );
});
});
});
});
});
</script>
<div class="row">
<div class="col-lg-12" id="account-subnavigation">
<div class="btn-group" style=" margin-bottom:10px; margin-left:10px;">
<button class="btn btn-info" style="width:120px" id="InfoButton">Info</button>
<button class="btn btn-info" style="width:120px" id="NotesButton">Notes</button>
<button class="btn btn-info" style="width:120px" id="ordersButton">Orders</button>
</div>
</div>
</div>
<div class="row" id="myContentView">
<% Html.Partial("UserAccountInfoView "); %>
</div>
硬件需求控制器控制器
public ActionResult InfoAction()
{
return PartialView("VoIPSubform1");
}
public ActionResult NotesButton()
{
return PartialView("VoIPSubform2");
}
public ActionResult OrdersButton()
{
return PartialView("VoIPSubform1");
}
出现错误的原因是Html.Partial("UserAccountInfoView")
正试图渲染名为UserAccountInfoView.aspx
的视图,但该视图不存在。您需要从视图中删除该行。
接下来,$.get()
函数将在浏览器控制台中抛出404 Not Found错误,因为您没有名为HardwareRequisitionControllerConroller
的控制器。您需要修改Url.Action()
方法以从控制器名称中删除"Controller"
,并使用aspx语法。
$.get('<% Url.Action("InfoAction", "HardwareRequisition") %>', function (data) {
....
}
不是
$.get('@Url.Action("InfoAction", "HardwareRequisitionController")', function (data) {
正如Stephen所提到的,您不需要Html.Partial("UserAccountInfoView")
,您的标记应该是这样的:
<div class="row" id="myContentView">
</div>
还有一件事:我认为动作名称不正确,它们一定是:NotesButton
,OrdersButton
:
...
$('#NotesButton').on("click", function() {
$.get('@Url.Action("NotesButton", "HardwareRequisitionController")', function (data) {
$( "#myContentView" ).html( data );
});
$('#OrdersButton').on("click", function() {
$.get('@Url.Action("OrdersButton", "HardwareRequisitionController")', function (data) {
$( "#myContentView" ).html( data );
});
});
});