我在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中没有足够的经验知道它是否与此有关。
答案 0 :(得分:1)
在部分视图中包含区域
return PartialView("~/Areas/yourArea/Views/Folder/_Forward.cshtml", ds.Tables[0]);