我正在使用Ajax将更新POST到服务器:
$("#my-check-Box").change(function () {
var value = $(this).attr("checked");
var url = '<%: Url.Routes().MyAction() %>';
$.ajaxSetup({ cache: false });
$.post(url,{ **myActionParameterName**: value },function (data) {
if (data.result != "success") {
alert(data.error);
}
});
});
我不想在客户端编写参数名称(如果它发生了变化)但有没有办法避免这样做?
最佳答案
简单回答:没有.在一天结束时,您的AJAX需要知道以这种或那种方式调用参数.
你所谈论的是抽象,而不是“不要重复你自己”的策略. DRY表示“不要多次重复逻辑”,而不是“不要引用变量”.如果是这种情况,您将无法对变量或参数进行任何类型的引用,因为您在技术上重复了变量的名称.
你将不得不引用一些东西,并且一旦客户端和服务器端一次引用某些东西.你可以将它抽象成其他东西,当然,但最终,引用你的动作参数并不担心它可能是最简单的.
重构将涉及一个简单的查找/替换,这在任何抽象下都不会改变.
现在,如果您多次引用该JSON对象或在JavaScript中多次奇怪地构造它,那么当DRY发挥作用时,您应该创建一个方法,您可以传入数据来构建它.