【发布时间】:2014-11-12 17:33:39
【问题描述】:
我在 ASP.NET MVC 5 项目中遇到 jQuery 加载问题。我正在尝试加载部分视图,所以我使用了
@Html.Action("GetView", "Home")
局部视图包含一些 jQuery 函数。加载时显示 jQuery 未定义消息,但 jQuery 正在主页面上工作。
所以我尝试了其他两种方法来加载局部视图,这些方法没有 jQuery 问题
@Html.Partial("_viewname")
@Ajax.BeginForm()
家庭控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GetView(string id = "")
{
return PartialView("_ViewName");
}
}
_Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
@Scripts.Render("~/bundles/modernizr")
@RenderSection("Head", false)
</head>
<body>
<section >
<div>
@RenderBody()
</div>
<div>
@RenderSection("Sidebar", false)
</div>
</section>
<!-- jQuery -->
@Scripts.Render("~/bundles/jquery")
@RenderSection("Scripts", false)
</body>
父页面索引.cshtml
@{
ViewBag.Title = "Admin";
}
<div id="main_content">
@Html.Action("GetView", "Packages")
</div>
部分视图_view.cshtml
<div class="row">
<div class="col-sm-12">
<select>
<option>1</option>
<option>2</option>
</select>
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
$("select").addClass("form-control");
});
</script>
我认为有一些 jQuery 加载问题,但我不明白为什么会在特定操作中发生这种情况。
请建议我解决这个问题。
【问题讨论】:
-
包含局部视图渲染的页面在哪里?
-
能不能分部分视图和父视图代码?
-
包括你的部分脚本
-
加上检查jquery是否正在使用firebug加载
-
您的 jQuery 正在呈现在正文的末尾,请确保您的局部视图中的所有脚本都在您的 Scripts-section 中,否则当您尝试使用它时 jQuery 尚未加载。
标签: jquery asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-5