首先我只是想知道在创建视图中mvc是否可以使用动态数据填充局部视图?如果没有,那么我怀疑是正确的。这只能在webforms中删除,我可以删除这个mvc应用程序,只使用webforms。
如果可以,请说明如何做到这一点。这里有我所拥有的一切。
使用名为
的部分视图代码进行说明_PartVue存储在文件夹后面的mvc代码的共享文件夹中 这部分视图是使用向导构建的
<table cellpadding="1" border="1">
<tr>
<th>
Field1
</th>
<th>
Field2
</th>
<th>
Field3
</th>
</tr>
@foreach (System.Models.DATA_LIST item in @ViewBag.List)
{
<tr>
<td>
@item.F1
</td>
<td>
@item.F2
</td>
<td>
@item.F3
</td>
</tr>
}
</table>
在创建视图
中这就是我希望局部视图显示在创建表单
上的形式 <div class="col-sm-6">
<div class="form-horizontal" style="display:none" id="PV_List">
@{ Html.RenderAction("ShowList",);}
</div>
</div>
创建视图中的java脚本代码,用于在下拉视图更改后显示的列表
$(document).ready(function () {
$('#RES_ID').change(function ()
{
debugger;
$.get('~/Views/Shared/_PartVue.cshtml', { VID: $(this).val() }, function (data) { $('#PV_List').html(data); });
$("#PV_List").show(); // Shows Partial View
});
}
在控制器中我有一个函数,它创建一个列表和一个使用名为return PartialView的函数:
[HttpGet]
public ActionResult ShowList(int? VID)
{
ViewBag.DataList = Get_List(VID);
return PartialView("~/Views/Shared/_PartVue.cshtml",ViewBag.DataList);
}
填充视图包数据的获取列表功能
private List<LIST_DATA> GET_List(int? VID)
{
return db.LIST_DATA.Where(i => i.ID == VID).ToList();
}
我从创建中获得的是字段,但没有数据。 什么是进入代码后面我看到正确的数据被选中,但它不会没有部分视图形式。
这是我得到的。
在谷歌浏览器中,我收到以下错误: http://localhost:50296/PrograX/~/Views/Shared/_PartVue.cshtml?VID=808无法加载资源:服务器响应状态为403(禁止)
这个局部视图位于共享文件夹中......所以mvc告诉我,不能用动态数据填充局部视图,我需要使用webforms而不是尝试使用mvc吗?
再次感谢你。希望这个问题可以更好地解释我正在尝试做什么,也许我可以得到更好的指导,让我知道这是不可能的,并且它不能在这个平台上完成。感谢
答案 0 :(得分:0)
首先,您可以在部分视图中指定要使用的模型,如下所示:
@model List <YourSolutionName.YourFolderNameWhereModelIs.YourModelName>
然后你可以在foreach中使用它,如下所示:
@if(Model.Count > 0)
{
foreach(var item in Model)
{
<tr>
<td>
@item.F1
</td>
<td>
@item.F2
</td>
<td>
@item.F3
</td>
</tr>
}
}