mvc局部视图无法找到

时间:2016-03-28 10:56:20

标签: ajax asp.net-mvc

我在Stackoverflow上遇到了非常类似的情况,但到目前为止,没有一种推荐方法对我有所帮助。

按钮应该像这样触发渲染局部视图

<script>
                function forward(element) {
                    var form = $(element).closest('form');
                    form.attr('action', "@Url.Action("ForwardList")");
                    form.attr('data-ajax-method', "POST");
                    form.attr('data-ajax-update', "#ajax-target");
                    form.submit();
                }


            </script>
            <div class="widget-body">
                <div class="mail-header" style="margin-left:0px;">
                    <ul class="header-buttons">
                        //other buttons to the left and right

                        <li>
                            <a class="tooltip-primary" data-toggle="tooltip" data-original-title="Forward" onclick="forward(this);"><i class="fa fa-mail-forward"></i></a>
                        </li>

                    </ul>
                </div>

和FolderController中的ForwardList Action Result

public ActionResult ForwardList(FormCollection coll)
        {
            ClaimsIdentity identity = (ClaimsIdentity)User.Identity;
            int CompanyId = Convert.ToInt32(identity.FindFirst("CompanyId").Value);
            string SelectedIds = coll["chkGrid"];

            DataSet ds = CompanyDB.Company_List(CompanyId);
            if (DBHelper.DataSetValid(ds, false))
            {
                ViewBag.SelectedIds = SelectedIds;
                return PartialView("~/Views/Folder/_Forward.cshtml", ds.Tables[0]);
            }
            else
                return PartialView();
        }

当我调试时,它进入ActionResult并一直向前然后返回500错误。

来自this.Context.AllErrors的错误会像这样返回

{“找不到局部视图'〜/ Views / Folder / _Forward.cshtml'或者没有视图引擎支持搜索到的位置。搜索了以下位置:\ r \ n〜/ Views / Folder / _Forward.cshtml “}

部分视图设置为内容。

结构是这样的 区/   主要/    查看/      夹/        _Forward.cshtml。

只有我没有排除的可能性是它是关于Ajax形式的,但我在Ajax中没有足够的经验知道它是否与此有关。

1 个答案:

答案 0 :(得分:1)

在部分视图中包含区域

return PartialView("~/Areas/yourArea/Views/Folder/_Forward.cshtml", ds.Tables[0]);