簡體   English   中英

如何在 jquery 事件處理程序上動態獲取 mvc model?

[英]How can I fetch the mvc model dynamically on a jquery event handler?

我正在使用 asp.net 內核和 MVC 架構。 我在單擊按鈕時有一個 jquery 事件處理程序。 如果用戶單擊按鈕,我將根據從 c# model 獲取的數據對 DOM 應用不同的更改。 我需要的 model 中的數據會根據用戶輸入而變化。 但由於事件處理程序僅在啟動時執行,我的 model 中的數據反映了我的 model 的初始 state。

我的 javascript:

    $(document).on("click", ".edit-log-child", function () {
            var NameCategory = $(this).data('id');

            /*some DOM change*/

            var json = @Json.Serialize(@Model.Categories);
            if (JSON.stringify(json) != JSON.stringify("{[]}"))
            {
                 var currentCategory = json.find(element => element.name == NameCategory);
                 ProcessEditCategorie(currentCategory);

            }

        });

有沒有辦法從我的 javascript 函數/事件處理程序中獲取我當前的 model ?

您可以使用表單帖子或 ajax:

1.form post(提交表單到action,action返回一個包含你想要的數據的視圖):

視圖(GetData1.cshtml):

@model IEnumerable<string>
<form method="post">
    <input name="id" id="id"/>
    <input type="submit" value="submit" />
</form>

行動:

public IActionResult GetData1(string id) {
            List<string> l = new List<string> { "a", "b", "c" };
            return View(l);
        }

結果: 在此處輸入圖像描述 2.ajax(當按鈕點擊時,從動作中獲取數據並且不會刷新頁面):

視圖(GetData1.cshtml):

    <input name="id" id="id"/>
<button onclick="getdata()" >submit</button>
<script>
        function getdata() {
           $.ajax({
                    type: "POST",
                url: '@Url.Action("GetData2", "Test")',
                data: { "id": $("#id").val() }
                 }).done(function (data) {

                });
        }
    </script>

動作(測試控制器):

public List<string> GetData2(string id)
    {
        List<string> l = new List<string> { "a", "b","c" };
        return l;
    }

結果: 在此處輸入圖像描述

暫無
暫無

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

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