亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過帶有 Razor 功能的 jQuery 動態 HTML

通過帶有 Razor 功能的 jQuery 動態 HTML

C#
一只名叫tom的貓 2021-07-14 13:01:10
使用 jQuery,我動態地將一組<ul>元素添加到<div>using .append。我遍歷一個包含<ul>我想要添加的每個值的表。那部分工作正常。我遇到問題的地方是嘗試向<li>元素添加 Razor 功能。盡管生成的最終結果 HTML 看起來是語法正確的 HTML,但 Razor 代碼不起作用。最終結果 HTML:<div id="div_1">    <label>Clients</label>    <ul>        @if (Model.details != null)        {            foreach (var itm in Model.details.OrderBy(i => i.value))        {            <li>@itm.value</li>}        }    </ul></div>上面的 HTML 是我的.append代碼生成的。它可以硬編碼到我的cshtml頁面中并且完美運行。通過.append在運行時添加它不是我認為圍繞創建時間或順序?下面我的代碼的縮小版本:控制器:[HttpGet]public JsonResult ClientMap(){    var db = new EDM_Client();    List<client_map> map = new List<client_map>();    map = db.client_map.ToList();    return Json(map, JsonRequestBehavior.AllowGet);}csHTML:<div id="divDetails" class="row"></div>jQuery://getClientMap temporarily called from a button clickgetClientMap(function (map) {    $.each(map, function (idx, obj) {        $('#divDetails').append('<div id="div_' + obj.detail_id + '">' +                                    '<label>' + obj.detail_hdr + '</label>' +                                    '<ul>' +                                        '@if (Model.details != null)' +                                        '{' +                                            'foreach (var itm in Model.details.OrderBy(i => i.value))' +                                            '{' +                                                '<li>' +                                                    '@itm.value' +                                                '</li>' +                                             '}' +                                         '}' +                                     '</ul>' +                                 '</div>');               });});function getClientMap(output) {$.ajax({    url: './Client/ClientMap',    type: "GET",    dataType: "json",    async: false,    success: function (data) {                    output(data);    }});我正在嘗試動態執行此操作,因此<ul>可以通過表條目而不是編碼更改輕松添加/刪除。任何關于如何使這項工作(或替代方式)的建議表示贊賞。
查看完整描述

1 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

jQuery 在客戶端機器上運行,因此當您使用它生成 Razor 代碼時,客戶端機器無法運行該代碼,因為它必須在服務器上運行。

您可以將 Razor 代碼直接放在應有的位置,然后根據需要使用 jQuery 顯示/隱藏選項。

或者,更改您的 Ajax 方法ClientMap以返回部分視圖而不是 JSON 字符串,然后使用 jQuery 的html()函數添加從 Ajax 返回的 HTML:

$('#divDetails').html(data);


查看完整回答
反對 回復 2021-07-18
  • 1 回答
  • 0 關注
  • 239 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號