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