C#MVC模板中的弹出模式导致无限循环

时间:2017-12-19 16:16:15

标签: c# html asp.net-mvc entity-framework razor

我目前正在构建一个应用程序,我希望每当有人从网站内的任何位置点击关键字时都能弹出一个窗口。该窗口将由Ajax刷新,并将正确的信息从数据库加载到弹出窗口。

我可能在这里使用了错误的逻辑,但我已经在这个问题上运行了几天。

我正在使用这个(缩短的)Cshtml布局:

<!DOCTYPE html>
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>@ViewBag.Title </title>
        <!--[if IE]><script type="text/javascript" src="~/Content/js/ievalidation.js"></script><![endif]-->
        @Styles.Render("~/Content/css")
        @Styles.Render("~/bundles/customcss")
        @Scripts.Render("~/bundles/modernizr")
    </head>
    <body>
        @Html.Partial("../Accueil/Nav")
    <div class="container body-content">
        @RenderBody()
    </div>
    <div id="InfoBulleModal" class="modal fade" role="dialog">
        @Html.Action("InfoBulle")
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)  

    @Scripts.Render("~/bundles/script")
    </body>
</html>

出现问题的部分是:

<div id="InfoBulleModal" class="modal fade" role="dialog">
    @Html.Action("InfoBulle")
</div>

我已尝试将其局限化,我尝试使用不同的方法进行渲染,但我总是在以下两种情况之一中结束:

  1. 模态加载时不使用从数据库加载数据的控制器方法并返回NullReferenceException错误
  2. Modal进入控制器,加载正确的数据,然后以某种方式返回_ViewStart.cshtml页面,将其发送回Layout页面,并创建无限循环。
  3. 这里是_ViewStart.cshtml的内容:

    @{
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    

    这是模态的控制器方法:

    public ActionResult InfoBulle()
        {
            InfoBulle InfoB = new InfoBulle();
    
            InfoB = dal.GetInfoBulle(1); //I'm using the id = 1 for testing purposes, I can confirm that the desired data is loaded at this point
    
            return View(InfoB);  //This part reloads the template, hence it reloads itself infinitely
        }
    

    如果有人能指出我正确的方向,我将非常感激!

0 个答案:

没有答案