我有一个简单的MVC表单,为此我试图找一小块JQuery来确定是否选中了复选框。我已经在包中注册了我的JS(Sender.js):
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
bundles.Add(new ScriptBundle("~/bundles/Sender").Include(
"~/Scripts/Sender.js"));
}
我在视图中注册了它:
<body>
@Scripts.Render("~/bundles/Sender")
</body>
现在,有两件事,1)脚本根本不工作,2)脚本似乎在div中注册:
这是我第一次尝试MVC,我确信我错过了一些明显的东西,但可以看到它。
有人能指出我正确的方法让我的js文件工作。 Basicall,它应该做的就是隐藏或显示一个文本框,如果选中了复选框AML。
修改
修改
这是整个视图
@model BTSanctions.UserAdmin.Models.EditSenderViewModel
@{
ViewBag.Title = "Edit";
}
@Scripts.Render("~/bundles/Sender")
<h2>Edit</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Add a new Sender</h4>
<hr />
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.AML, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.AML)
@*@Html.ValidationMessageFor(model => model.MatchPercentage)*@
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.MatchPercentage, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.MatchPercentage)
@Html.ValidationMessageFor(model => model.MatchPercentage)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
</div>
}
答案 0 :(得分:1)
Word&#34; Scripts&#34;由于某些原因,我经常弄乱浏览器,我有同样的问题。 所以我按F12来实际查看是否正在调用特定的js。如果有
~Script / example.js ---&gt; 404 html错误代码然后它意味着javascript没有在浏览器中呈现。
所以这就是我解决这个问题的方法
<强> **************************解************* 强>
Virtaul Path name&#34; Sender&#34;在Jquery Bundle中必须 NOT 匹配实际的文件名&#34; Sender.Js&#34;这样做会使编译器混淆呈现javascript。
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Js/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Js/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/Senderval").Include(
"~/Js/Sender.js"));
Jquery Bundle渲染后,所有脚本都必须在head标签内..
&lt; --- head ---&gt;
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/Senderval")
&LT; ---- /头-----&GT;