asp.net mvc jquery ajax post,使用ASP.NET MVC在JS文件中设置jQuery的ajax url
这样可以充分利用MVC路由,以便充分利用MVC框架。
灵感来自于stusmith的答案。
在这里我有一个ActionController的动作javascript为这个URL的动作:
/application/js
我在这里包括静态文件,因为我只需要一个主要的javascript文件下载。你可以选择只要返回动态的东西,如果你想要的:
///
/// Renders out javascript
///
///
[OutputCache(CacheProfile = "Script")]
[ActionName("js")]
public ContentResult RenderJavascript()
{
StringBuilder js = new StringBuilder();
// load all my static javascript files
js.AppendLine(IO.File.ReadAllText(Request.MapPath("~/Scripts/rr/cart.js")));
js.AppendLine(";");
// dynamic javascript for lookup tables
js.AppendLine(GetLookupTables());
js.AppendLine(";");
return new ContentResult()
{
Content = js.ToString(),ContentType = "application/x-javascript"
};
}
这是创建我们的查找表的帮助函数。只需为您要使用的每个RouteUrl添加一行。
[NonAction]
private string GetLookupTables()
{
StringBuilder js = new StringBuilder();
// list of keys that correspond to route URLS
var urls = new[] {
new { key = "updateCart",url = Url.RouteUrl("cart-route",new { action = "updatecart" }) },new { key = "removeItem",new { action = "removeitem" }) }
};
// lookup table function
js.AppendLine("// URL Lookuptable");
js.AppendLine("$.url=function(url) {");
js.AppendLine("var lookupTable = " + new JavaScriptSerializer().Serialize(urls.ToDictionary(x=>x.key,x=>x.url)) + ";");
js.AppendLine("return lookupTable[url];");
js.AppendLine("}");
return js.ToString();
}
这将生成以下动态javascript,它基本上只是从任意键到我的操作方法所需的URL的查找表:
// URL Lookuptable
$.url=function(url) {
var lookupTable = {"updateCart":"/rrmvc/store/cart/updatecart","removeItem":"/rrmvc/store/cart/removeitem"};
return lookupTable[url];
}
在cart.js中,我可以有这样的功能。
请注意,url参数取自查找表:
var RRStore = {};
RRStore.updateCart = function(sku,qty) {
$.ajax({
type: "POST",url: $.url("updateCart"),data: "sku=" + sku + "&qty=" + qty,dataType: "json"
// beforeSend: function (){},// success: function (){},// error: function (){},// complete: function (){},});
return false;
};
我可以从任何地方只用:
RRStore.updateCart(1001,5);
这似乎是我可以想到的唯一方法,这将允许我以干净的方式使用路由。在javascript中动态创建URLS是非常难以测试的。测试类型可以添加到这里的某个地方,以方便测试。
asp.net mvc jquery ajax post,使用ASP.NET MVC在JS文件中设置jQuery的ajax url相关推荐
- 利用jQuery的deferred异步按顺序加载JS文件
前段时间看了阮一峰的jQuery的deferred对象详解一文,对jQuery中的deferred的用法了一些了解,今天看到园子里的一篇文章:关于重构JS前端框架的失败经验(顺便怀念那些死去的代码), ...
- js html保存json,如何在json文件中存储jQuery或javascript变量?
我可以知道有没有机会将jquery变量保存在json文件中?提前致谢.如何在json文件中存储jQuery或javascript变量? 我: var image='/test/test.png'; 我 ...
- JS文件中加载jquery.js(JS文件添加其他JS文件)
最近有一个需求: 1.在一个html中只能引入一个JS文件 不能有JS代码和其他JS文件的引入 2.这个JS文件中 还要引入其他的JS文件 3.所有JS功能都写在这个JS文件中 这些代码用到了jque ...
- jQuery调用其他JS文件中的方法
一个JSP页面中,可以引入多个JS文件 当需要调用某个JS文件中的方法时,可以这么写 首先 在该页面中引入调用的JS文件 <script src="${ctx}/static/js/a ...
- js文件中发送ajax请求,ulr路径不起作用的解决办法
前言: 在写Python项目的时候,单独的js文件发送ajax请求,并不起效果并且提示路径错误 错误原因分析: {% url 'myadmin_updategoodsgrade' %} # 是模板中的 ...
- VSCode中,新建js文件中编译器自带jQuery提示失效的解决方法
VSCode中,新建js文件中编译器自带jQuery提示失效的解决方法 在VSCode中,新建js文件可能会发生VSCode自带的jQuery提示引起失效,如下图 在HTML文件中进行编辑,<s ...
- ajax 与php页面取值,在同一页面中使用PHP和AJAX的最佳方法
在同一页面上,我有几种类型的代码:PHP,JS和HTML.我想从HTML表单中获取信息并进行PHP处理,而无需在单击"发送"按钮后重新加载页面. PHP获取它通过API发送的值(来 ...
- php把表单转为json保存,javascript – 使用jquery将表单数据保存到本地json文件中
我有一个带有一些输入字段的基本表单.我想在提交表单时将表单数据保存到json文件中. json文件中保存数据的格式应如下所示. [ {"title":"some text ...
- web项目中jsp文件中使用jquery失效
学习过程中遇到的小问题,编写的jquery绑定事件一直无法在页面触发,查阅了多种说法,比如$符号在jsp有冲突,改成jQuery使用等,后面发现原因在于其不能访问/WEB-INF/目录下的文件,而我引 ...
最新文章
- 计算比尔盖茨財富的方法
- 百炼OJ:2750:鸡兔同笼
- TQ210裸机编程(2)——LED流水灯
- java访问登录网页_===java怎样访问需要登录才能查看的网页????急!!===...
- 中继代理 server2008R2
- php mysql 命令行模式_MySQL_MYSQL导入导出sql文件简析,一.MYSQL的命令行模式的设置- phpStudy...
- 【POJ3070】斐波那契数列f[n]的后四位,n达1e+9(矩阵快速幂模版题)
- 计算机基础——网卡(网络适配器network adaptor)
- 10_微信小程序-BLE低功耗蓝牙开发-连接设备
- 一本书读懂大数据时代
- ubuntu使用certbot给nginx添加ssl证书
- vs2019社区版下载教程(详细)
- 微信公众平台开发——群发信息
- git 撤销单个文件到某个提交
- Oracle删表报错ora00054,【Oracle】ORA-00054 错误解决方法
- c语言扫雷游戏构成原理,扫雷游戏的C语言实现
- UE4_AR/MR项目经验
- html的基础网页代码源(超基础)
- 技术总监.部门经理.程序员
- 活久见!这么好的图文电子书制作工具我竟然才发现
热门文章
- 目标检测方法系列——R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD
- FPGA与MCU,DSP(如C6000,C5000等)等设计思想的异同
- 通道抠图--火焰,背景颜色统一为黑色
- map传参上下文赋值的问题
- 2018年9月份GitHub上最热门的Python项目
- 解决rtl8723be网卡故障
- mysql innodb和myisam比较
- 不重启的情况下linux系统安装中文包生效
- 编码时的一些普适原则
- Python:通过远程监控用户输入来获取淘宝账号和密码的实验(二)