[英]error when using partial render
你好,我一直在尝试使用局部渲染从主视图访问局部视图的视图模型
局部视图是一个对话框,当我单击一个按钮时,将打开该对话框并通过调用controller来加载它,这是该控制器的代码:
public ActionResult ImagesPartial()
{
ViewBag.Images = Directory.EnumerateFiles(Server.MapPath("~/images_upload"))
.Select(fn => "~/images_upload/" + Path.GetFileName(fn));
return PartialView("_ImagesPartial");
}
在我的局部视图中,我使用此代码显示图像和单选按钮
@foreach(var image in (IEnumerable<string>)ViewBag.Images)
{
@Html.RadioButtonFor(model => model.imageVenteCatalog, image)
<img src="@Url.Content(image)" alt="Hejsan" width="100" height="100" class='selectable-image'/>
}
最终在主视图中,我使用renderpartial来获取已选择哪个单选按钮
@{Html.RenderPartial("_ImagesPartial");}
但是相反,我收到一条错误消息,指出引用未定义
有什么想法吗?
编辑:
对于viewdata [“”]都没有关系,我已将其删除,问题就在这里
@foreach((IEnumerable)ViewBag.Images中的可变图像)
但是为什么这会引起问题
Html.RenderPartial
不调用动作,它仅呈现View,并且您希望调用该动作,以便填充ViewBag.Images
,我怀疑您希望使用Html.RenderAction
来代替:
@{ Html.RenderAction("ImagesPartial","ControllerName"); }
对于填充模型,您必须按照以下说明使用:
@Html.Partial("_ImagesPartial", Model)
在您看来
并改变您的控制器
public ActionResult ImagesPartial()
{
//strore data in your model class data
return PartialView("_ImagesPartial", pass your model data);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.