Edi Wang

.NET and Azure Developer

jQuery

Send AntiForgeryToken via jQuery Ajax in ASP.NET Core

In ASP.NET Core, if we use jQuery Ajax to post data to the server, and we want the ValidateAntiForgeryToken attribute to work. We have to do some tricks. The official document didn't document how to do it via jQuery. Let me show you how to do it. Please do read the official document first: https://docs.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-2.1  In my …

.NET AJAX ASP.NET jQuery

ASP.NET Web API接受JSON格式复杂对象(嵌套)

上礼拜在公司开荒Web API,被爆出翔了。遇到个具体问题是这样的:Web API中的方法接受的参数是个复杂对象,这个对象里嵌套了另一个对象。但使用API的人不知道如何在JSON里传递复杂对象给Web API。大家一起爆了很久,尝试了各种写法,还是没能解决。 今天我突然想到一个办法,可以获取正确的Nested JSON字符串。并且开荒成功了。与大家分享: 首先,我写的例子是这样的,Product对象里嵌套了一个Category对象,AddProduct的方法接受的是Product对象,我不仅需要Product的信息,也需要被嵌套的Category的信息: [HttpPost] public string AddProduct(Product productModel) { var sb = new StringBuilder(); sb.Append("Product. …

ASP.NET jQuery Json Web API

ASP.NET MVC3如何用JQuery传递数组(集合)类型参数给JsonResult Action

今天在码新版博客的一个功能,有个细节就是要将一个表格里选中的Id传给后台Action。原先用Form做Post的话,这是非常好实现的,然而现在我要用AJAX完成传递,并且网页上没有Form,所以我也不能用Ajax.BeginForm,肿么办呢?经过一番开荒,我终于把它码出来了。 后台Action是个返回JsonResult的方法,签名如下: public JsonResult ExportSelectedPosts(List selectedIds) 用string集合是因为手写AJAX是不走MVC的model bind的,所以通过网页传递过来的数据只能是string。如果这个方法不加selectedIds这个参数其实也是可以的(最后我们会看到用Request对象一样可以取到值)。但为了符合设计规范,我还是建议大家加上的。 前台的View里这样码(硬编码了一些数据只是为了演示): …

Array jQuery Json MVC

JQuery搞定SyntaxHighlighter v3.x长代码自动换行

长代码换行是SyntaxHighlighter3.0版本之前的功能,但3.0之后就木了,草草草草艹!本人认为主要猿因是gutter(代码行号指示器)的换行难做。因为3.x版是将代码行号和代码部分分开生成HTML的,猿来的老版本是在一起的。这样做是便于直接复制代码,而不会复制到行号上去。 很多人都在想办法让它实现换行,但都卡在代码行号的问题上。我关注这个问题已经差不多一年了,今天终于有了个比较漂亮的解决办法。 首先,强制给代码部分换行的CSS还是要写的: body .syntaxhighlighter .line { white-space: pre-wrap !important; } 这段CSS换行的前提是,pre标签的外边一定要有一个固定宽度的容器对象。比如一个600px宽度的div就可以。 然后,我们需要一段JQuery,用来计算被换行的代码显示在页面上的高度,然后赋值给它的 …

jQuery

JQuery文本框自动完成,通过AJAX调用ASP.NET WebService

最近在搞博客搜索框的自动完成功能,用的是JQuery UI里的autocomplete插件。插件的数据源是用AJAX调用一个WebService,网站后台有个标签库,WebService返回的是符合条件的标签。最终效果如下: 我们先来看WebService的代码,方法很简单: [WebMethod] public List GetAllTagsForAutoComplete(string tagName) { return optTag.GetModelList().Where(p => p.Name.ToLower().StartsWith(tagName.ToLower())).ToList(); }  这个方法的作用是根据输入的内容,检索所有以tagName开头的标签。我没有返回全部标签,是因为autocomplete插件的默认行为不符合我的需求。在默认情况下,如果我输入 …

AJAX ASP.NET AutoComplete jQuery WebService

JQuery AJAX读取ASP.NET WebService泛型方法

这几天在研究JQuery和WebService,被泛型返回类型搞死了。查了很多资料做实验终于搞定了。网上很多垃圾文章的作者都不亲手实验就到处拼凑把东西发上来,太不负责了。下面我发的是100%可用的,经过亲手实验的代码。 首先在WebService上要注意一点,一定记得把[System.Web.Script.Services.ScriptService]这行取消注释,这样脚本才可以调用到WebService。如图: 我用来测试的是我网站的友情链接列表,其WebService方法如下: [WebMethod] public List GetFriendLinks() { return new EdiBlog.Core.FriendLink().GetModelList(); } 经过测试,在浏览器中用GET访问是会爆掉的,所以我们用POST方法去调用。在默认的IIS和ASP. …

AJAX ASP.NET jQuery WebService

ASP.NET中用Ctrl+S触发按钮事件

这个也是上礼拜印度队友给我留的“作业”,今天搞定了。场景是某个页面,用户输入内容后,希望按Ctrl+S直接提交保存。也就是要用Ctrl+S去触发保存按钮的Click事件。然而在浏览器中,Ctrl+S默认是保存网页(Firefox下就是这样),所以需要写一个可以覆盖浏览器自身快捷键的脚本,去触发按钮事件。 我写了个最简单的Demo,效果如下:点击Button后,会显示一句话以及触发时间。现在需要用Ctrl+S来触发这个事件。注意,先得引入JQuery库。 第一种方法是: $(window).keypress(function (event) { if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) { return true; } $('#Button1'). …

ASP.NET jQuery
  • 1