【问题标题】:Partial file not found in mvc application在 mvc 应用程序中找不到部分文件
【发布时间】:2016-10-03 07:13:24
【问题描述】:

我收到以下错误。

System.Web.Mvc.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理

附加信息:未找到局部视图“../Shared/Partial/_ReferencePartial.cshtml”或没有视图引擎支持搜索的位置。搜索了以下位置:

我在Area/Admin 中有登录控制器。在Login.cshtml 视图文件中,我引用了包含对脚本文件的引用的Partial View 文件。该文件位于文件夹Solution/Project/Views/Shared/Partial

下面是我的Login.cshtml查看文件代码。

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>@Messages.Login</title>

    @Html.Partial("../Shared/Partial/_ReferencePartial.cshtml")
</head>
...

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-partialview


    【解决方案1】:

    如果您想直接在主视图中加载局部视图,您可以使用 Html.Action 助手:

    @Html.Action("Load", "Home")
    

    或者如果您不想执行加载操作,请使用 HtmlPartial hepler:

    @Html.Partial("_LoadView")
    

    如果您想使用 Ajax.ActionLink,请将您的 Html.ActionLink 替换为:

    @Ajax.ActionLink(
        "load partial view", 
        "Load", 
        "Home", 
        new AjaxOptions { UpdateTargetId = "result" }
    )
    

    当然,您需要在您的页面中包含一个持有者,其中将显示部分内容:

    <div id="result"></div>
    

    别忘了包括:

    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
    

    在您的主视图中启用Ajax.* 助手。并确保在您的 web.config 中启用了不显眼的 javascript(默认情况下应该启用):

    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    

    【讨论】:

    • 局部视图文件仅包含对脚本文件的引用。这意味着该文件仅包含scriptlink 标签和@Scripts.Render
    • @DhavalR,我认为如果您采用第一种或第二种方式,您的代码将起作用。你只是想加载部分视图而已..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多