繁体   English   中英

使用部分渲染时出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM