[英]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.