簡體   English   中英

自定義JQuery捆綁包,MVC5

[英]Custom JQuery Bundle, MVC5

我有一個簡單的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中注冊自己:

渲染的Java腳本

這是我第一次嘗試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>
}

由於某些原因,“腳本”一詞經常與瀏覽器混在一起,我也遇到了同樣的問題。 所以我打F12來看看是否正在調用特定的js。 如果有

〜Script / example.js ---> 404 html錯誤代碼,則表示javascript沒有在瀏覽器中呈現。

所以這就是我解決這個問題的方法

**************************解*************

  1. 將Scripts文件夾重命名為Js
  2. jQuery中捆綁Virtaul路徑名“發件人”必須符合實際的文件名“Sender.Js”,因為這樣做將會使編譯器困惑呈現的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")); 
  3. 您要編寫的所有腳本都必須在Jquery Bundle之后放在head標簽內。

    <---頭---->

      @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval") @Scripts.Render("~/bundles/Senderval") 

    <---- /頭----->

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM