簡體   English   中英

Dojo在MVC局部視圖中不起作用

[英]Dojo doesn't work in MVC Partial View

我有部分視圖:

<div id="AgreementBox@(ViewData["UniqueId"])" class="agreement-box">
    <span>
        I read agreement
    </span>
    <a>
        terms of usage
    </a>
</div>

<script>
    require([
    'dojo/dom',
    "dijit/form/CheckBox",
    "dojo/dom-construct",
    "dojo/ready"],
function (dom@(ViewData["UniqueId"]), checkbox@(ViewData["UniqueId"]), construct@(ViewData["UniqueId"]), ready@(ViewData["UniqueId"])) {
    ready@(ViewData["UniqueId"])(function () {
        agreecheckbox@(ViewData["UniqueId"]).placeAt(dom@(ViewData["UniqueId"]).byId("AgreementBox@(ViewData["UniqueId"])"), "first");
    });
    var agreecheckbox@(ViewData["UniqueId"]) = new checkbox@(ViewData["UniqueId"])(
        {
            id: "IAgreeToTermsOfUse@(ViewData["UniqueId"])",
            name: "iagreetotermsofuse@(ViewData["UniqueId"])",
            class: "i-agree-checkbox",
            checked: false
        });
});
</script>

我在每種形式下都使用此視圖(每種形式都有一個唯一的id巫婆,用作ViewData [“ UniqueId”]):

@Html.Partial("../MyPartialView", new ViewDataDictionary { { "UniqueId", "Order" } })

當該視圖每頁顯示一個視圖時,它將起作用,但是當它顯示更多時,則該復選框不會顯示在頁面上。 我沒有收到任何錯誤,並且在chrome調試器中,代碼有效!

生成的輸出:

<div id="AgreementBoxContact" class="agreement-box">
    <span>
        I read agreement
    </span>
    <a>
        terms of usage
    </a>
</div>
<script>
    require([
    'dojo/dom',
    "dijit/form/CheckBox",
    "dojo/dom-construct",
    "dojo/ready"],
function (domContact, checkboxContact, constructContact, readyContact) {
    readyContact(function () {
        agreecheckboxContact.placeAt(domContact.byId("AgreementBoxContact"), "first");
    });
    var agreecheckboxContact = new checkboxContact(
        {
            id: "IAgreeToTermsOfUseContact",
            name: "iagreetotermsofuseContact",
            class: "i-agree-checkbox",
            checked: false
        });
});
</script>
//
//on the same html page
//
<div id="AgreementBoxOrder" class="agreement-box">
    <span>
        I read agreement
    </span>
    <a>
        terms of usage
    </a>
</div>
<script>
    require([
    'dojo/dom',
    "dijit/form/CheckBox",
    "dojo/dom-construct",
    "dojo/ready"],
function (domOrder, checkboxOrder, constructOrder, readyOrder) {
    readyOrder(function () {
        agreecheckboxOrder.placeAt(domOrder.byId("AgreementBoxOrder"), "first");
    });
    var agreecheckboxOrder = new checkboxOrder(
        {
            id: "IAgreeToTermsOfUseOrder",
            name: "iagreetotermsofuseOrder",
            class: "i-agree-checkbox",
            checked: false
        });
});
</script> 

請幫助我找出原因。

終於我找到了答案! 我仍然不知道為什么以前的代碼不起作用。 我做了一點修改,現在可以正常使用了!

<div id="AgreementBox@(ViewData["UniqueId"])" class="agreement-box">
    <span>
        I read agreement
    </span>
    <a>
        terms of usage
    </a>
</div>
}
<script type='text/javascript'>
    require([
    'dojo/dom',
    "dojo/dom-construct",
    "dojo/domReady!"],
function (dom@(ViewData["UniqueId"]), Create@(ViewData["UniqueId"])) {
    var checkbox@(ViewData["UniqueId"]) = Create@(ViewData["UniqueId"]).create("input", {
        type: "checkbox",
        id: "IAgreeToTermsOfUse@(ViewData["UniqueId"])",
        name: "iagreetotermsofuse@(ViewData["UniqueId"])",
        class: "i-agree-checkbox"
    });
    Create@(ViewData["UniqueId"]).place(checkbox@(ViewData["UniqueId"]), dom@(ViewData["UniqueId"]).byId("AgreementBox@(ViewData["UniqueId"])"), "first");
});
</script>

如果有人能找到我以前的代碼無法正常工作的原因,我很樂意得到答案! 我花了近一周的時間解決這個問題,但我仍然不知道為什么會發生!

暫無
暫無

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

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