首页 > 解决方案 > 在asp.net mvc的Index.cshtml中没有定义部分?

问题描述

我在索引中定义部分。cshtml 但是当我运行应用程序然后生成一个错误 section is not defined 我创建了相同的另一个项目,然后在索引中定义简单方法。cshtml 然后运行我的应用程序,但不显示我当前的项目弹出窗口??

另一个项目 _layout.cshtml

<div class="container body-content">
        @RenderBody()
        @RenderSection("simpelmessage")
        <footer>
            <p>WebApi Crud Oeperation using Entity Framework In Mvc</p>
        </footer>
    </div>

索引.cshtml

@section simpelmessage{
   <h1>simple message</h1>
}

那是在另一个项目中工作

但是我当前的工作项目不应该显示我的弹出窗口??我正在使用 api 执行 crud 操作

_layout.cshtml

    <div class="container body-content">
        @RenderBody()
        @RenderSection("alertpopup")
        <footer>
            <p>WebApi Crud Oeperation using Entity Framework In Mvc</p>
        </footer>
    </div>

索引.cshtml

@section alertpopup
{
    <script src="https://cdnjs.cloudflare.com/ajax/libs/AlertifyJS/1.13.1/alertify.min.js" type="text/javascript">
        $(function () {
            var successmessage = '@ViewBag.message'  
            if (successmessage != '') 
            {
                alertify.success(successmessage);
            }
        });
    </script>
}

家庭控制器.cs

        public ActionResult Index()
        {
            IEnumerable<studentmvcmodel> stdlist;
            HttpResponseMessage response = globalvariable.webapiclient.GetAsync("studlogins").Result;
            stdlist = response.Content.ReadAsAsync<IEnumerable<studentmvcmodel>>().Result;
            ViewBag.message = "record is inserted";
            return View(stdlist);
        }

        public ActionResult create()
        {
            return View();
        }

        [HttpPost]
        public ActionResult create(studentmvcmodel stud)
        {
            var username = stud.username;
            var passs = stud.password;
            if (username != null && passs != null)
            {
                HttpResponseMessage response = globalvariable.webapiclient.PostAsJsonAsync("studlogins", stud).Result;
                ViewBag.message = "data inserted successfully";
                return RedirectToAction("Index");
            }
            else
            {
                ViewBag.message = "please all the data fillup carefully";
                return View("create");
            }
        }

我的记录应该被创建,但我想在提交记录时弹出消息??但是给出的错误部分没有定义??当我按下提交按钮时,我正在尝试什么,然后应该显示一个弹出窗口但不显示弹出窗口?

我希望我的问题被理解?

我要去浏览器然后ctrl+U然后显示弹出功能。

<script src="https://cdnjs.cloudflare.com/ajax/libs/AlertifyJS/1.13.1/alertify.min.js" type="text/javascript">        


        $(function popup()
        {
            var successmessage = 'record is inserted';
            if (successmessage != '')
            {
                //alertify.success(successmessage);
                alert('record is inserted');
            }
        });
        popup();
      </script>

标签: javascriptc#asp.net-mvcalert

解决方案


渲染部分有两个参数;一个字符串和一个布尔值:

@RenderSection(string name, bool required)

name参数是要渲染的部分的名称,并required指示必须始终渲染该部分。如果该部分可能无法在某些视图或某个时间呈现,则应将 required 设置为 false ,如下所示。

@RenderSection("alertpopup", false)

我也不确定您希望何时显示弹出窗口,因为它没有在您的代码中调用。如果出于某种原因您希望在加载文档时调用它,则应将代码更改为此

@section alertpopup
{
    <script src="https://cdnjs.cloudflare.com/ajax/libs/AlertifyJS/1.13.1/alertify.min.js" type="text/javascript">
        $(doucument).ready(function () {
            var successmessage = '@ViewBag.message'  
            if (successmessage != '') 
            {
                alertify.success(successmessage);
            }
        });
    </script>
}

推荐阅读