Tag: asp.net web api

不使用ajax下载文件

我试图按照这个例子来显示进度条而不使用ajax下载文件。 我使用knockout,html和webapi。 我有下面的代码,它在按钮的点击事件上调用href this.getMeData= function () { uRlPath(“/api/GetSomeData?id=” + 12) + “&name=” + getName.toString() + “&downloadtoken=” + new Date().getTime()); $(‘#myLink’).click(); location.href = $(‘#myLink’).attr(‘href’); }; 这是我的HTML Download Data Open 我现在想在我的href的click事件上调用一些函数 这是我的webapi方法,它返回cookie和二进制文件 public HttpResponseMessage GetSomeData(int id, string name, string downloadtoken) { var returnData= new HttpResponseMessage(HttpStatusCode.OK); returnData.Content = new ByteArrayContent(mybyteArray); var cookie = new CookieHeaderValue(“downloadtoken”, downloadtoken); returnData.Headers.AddCookies(new CookieHeaderValue[] […]

将事件数据传递给从Web API收到的jQuery的jQuery周日历

我使用jQuery Week Calender ,Asp.net Web API作为服务器端,Sql server作为后端。 到目前为止我根据演示完成的所有工作,但是演示有静态JSON数据,这里我需要从服务器检索数据。 几乎所有其他事情都很清楚并且工作正常,但是从服务器传递loadin事件数据并传递给日历时出现问题,这是我从服务器获得的响应。 [{“id”:13,”title”:”Event Name”,”body”:”Content”,”start”:”2012-10-16T03:30:00.00″,”end”:”2012-10-16T06:30:00.00″,”typeEvnt”:1},{“id”:14,”title”:”dfgfdg”,”body”:”gdfgdfg”,”start”:”2012-10-15T04:15:00.00″,”end”:”2012-10-15T06:45:00.00″,”typeEvnt”:1}] 日期时间采用GMT格式,需要转换为本地时区,然后添加日历。 以下是我要将其添加到日历中的操作: $.ajax({ url: ‘/api/api/event/load’, type: ‘get’, statusCode: { 200: function (data) { var dataString = JSON.stringify( data); callback( {events : dataString} ); }); 但我在chrome中遇到错误说Uncaught TypeError:无法调用未定义的方法’getTime’我很确定这与Date转换有关。 在此错误之后,日历不会加载事件。 这里有几点,不清楚: DateTime服务器应将数据发送到浏览器的格式。 如何将其转换为本地时区并传递给日历。 C#.net中的服务器端代码用于以所需格式格式化日期时间。 总之,我需要从服务器检索DateTime数据的方法,并将其转换为本地时区,然后将其添加到jQuery Week Calender。 任何建议或线索都会有所帮助或MVC演示。

使用JQuery Ajax和JSONP调用OData服务

我正在尝试使用JQuery $ .ajax调用OData服务并遇到一些问题。 当我使用dataType:“jsonp”调用服务时,我得到状态代码200和我需要的数据,但它属于我的JQuery错误:函数(数据) 当我使用dataType:“json”调用服务时,我什么都没得到,甚至没有发生对服务的调用。 这是我的.ajax电话: $.ajax({ beforeSend: function(request) { request.setRequestHeader(“Accept”, “application/json;charset=utf-8”); }, type: “GET”, url: this.uri + filter, dataType: “jsonp”, success: function(data) { // I never get here but in fiddler I get a 200 status code }, error: function(data) { // This works and gives me the data but it’s in the JQuery […]

使用web api上传时不支持的媒体类型

我目前正在迁移服务以使用来自mvc的asp.net web api。 我有这个ApiController [Authorize] public class UploadController : ApiController { private readonly ObjectService service; private readonly string companyId; public UploadController() { this.companyId = “D49AA22B-3476-4FAC-8BEF-38F53F9378F3”; this.service = new ObjectService(ConfigurationManager.AppSettings[“AWSAccessKey”], ConfigurationManager.AppSettings[“AWSSecretKey”], this.companyId); } // POST api/upload/5 [HttpPost] [Route(“api/upload”)] public IHttpActionResult StartUpload(UploadModel model) { try { var id = Guid.NewGuid().ToString(); if (!service.Exists(model.File.FileName)) { service.Add(id); var stream = […]

如何使用GET方法发送JSON对象

我用WebApi2的控制器方法 [HttpGet] public IEnumerable GetProducts(ProductSearchCriteria searchCriteria) { //searchCriteria is always null here!!! Why? return db.Instance.LoadProducts(searchCriteria); } 我的搜索条件类 public class ProductSearchCriteria { private int id; private string name; private DateTime createdOn; [JsonProperty] public string Name { get { return this.name; } set { this.name = value; } } [JsonProperty] public DateTime CreatedOn { get { return […]

在Internet Explorer中的jQuery.ajax PUT请求问题

我正在研究ASP.NET MVC4 webapi,看起来通过$ .ajax的put请求在谷歌浏览器和Firefox的情况下工作正常,但它在IE(10)中不起作用。 以下代码: $.ajax({ url: ‘api/xQuizQuestion’, type: ‘PUT’, dataType: ‘json’, data: JSON.stringify(AllQsWithAs), contentType: “application/json;charset=utf-8”, success: function (data) { alert(‘Student added Successfully’); }, error: function () { alert(‘Student not Added’); } }); 在chrome / firefox中工作得很好,因为数据AllQsWithAs (它是一个复杂类型的数组)被添加到Request主体,但是在IE(10)的情况下,请求主体没有数据发送。 同样与Fiddler确认相同。 令人惊讶的是,当我将浏览器模式更改为IE9 / IE8或浏览器模式为IE 8/9时,它的工作正常。 不确定这个问题是什么。 任何帮助/见解将不胜感激。

从本地Web表单应用程序进行本地web api调用

我想知道是否可以拨打这个电话: jQuery.ajax({ type: “POST”, url: “http://localhost:5832/api/Login”, data: “{username: user1, password:’123456′}”, contentType: “application/json; charset=utf-8”, dataType: “json”, success: function (data) { alert(data.d); } }); 这基本上是调用这个web api控制器: public class LoginController : ApiController { [System.Web.Http.AcceptVerbs(“POST”)] public HttpResponseMessage Post(string username, string password) { string authenticationToken = “”; Helpers hpl = new Helpers(); authenticationToken = hpl.LoginUser(username, password); int userId = 0; […]

X-Frame-Options拒绝加载:“http://test.test.net/Feedback/Create?appId=TestApp”不允许使用MVC5进行跨源框架

我正在一个托管在我公司网络上的网站,只能从网络中访问,所以我不关心跨域请求。 无论如何,这个我正在研究的特定网站我在导航栏中添加了“提供反馈”链接。 这个“提供反馈”链接打开一个jQuery模式对话框,在这个对话框中是一个iframe ,它加载的URL服务器不同于托管这个特定网站的服务器,因此我得到的错误。 MVC4运行良好,没有这样的问题,只有当我升级到MVC5时才会这样。 MVC5有一些不同之处可以防止将内容加载到框架中。 我已经阅读过将X-Frame选项设置为“ALLOWFROM” – 但这是否意味着我需要在iframe加载的应用程序URL或调用应用程序(导航栏中包含此链接的网站)上设置此选项? 我还要补充说,当我将应用程序从MVC4 / WebAPI升级到MVC5 / WebAPI版本2的iframe ,才会出现此问题。我使用以前版本的MVC时没有遇到任何问题。 我该如何解决这个问题? 更大版本的Firebug: 这是我的应用程序中的客户端代码,其中包含“提供反馈”的代码: $(document).ready(function () { $(‘body’).append(“”); $(“#dialog-modal”).dialog({ buttons: { “Close”: function () { $(this).dialog(“close”); } }, title: “Provide Feedback!”, autoOpen: false, height: 560, width: 940, modal: true, overlay: { backgroundColor: “#000000”, opacity: 0.75 }, resizable: true, open: function () […]

kendu ui datasource read事件有null请求

我在移动页面上有一个Kendo UI调度程序小部件,您可以看到它有一个数据源读取事件。 $(“#scheduler”).kendoScheduler({ … dataSource: { batch: true, transport: { read: { url: “http://mydomain.com/api/Schedule/Tasks_Read”, dataType: “jsonp” }, … }); 当调用read事件时,它将请求发送为 http://mydomain.com/api/Schedule/Tasks_Read?callback=jQuery1910528280699858442_1396259085815&_=1396259085816 问题是当webapi get方法获取请求时, [DataSourceRequest] DataSourceRequest请求参数为null。 [HttpGet] public DataSourceResult Tasks_Read( [DataSourceRequest]DataSourceRequest request) //,DateTime startDate) { using (scApp = new ScheduleControllerApplication()) { … } } 有人能告诉我为什么请求参数为空? 我在MVC4页面上有一个调度程序,它工作正常,并添加了相同的查询字符串jquery 。 我的解决方案 – 如果你有不同的方法,绝不让这阻止你回答。 由于此呼叫来自移动源,我更改了httpget签名 [HttpGet] public string Tasks_Read( string […]

如何将表单数据发布到API控制器

表单数据使用jquery发布: $.ajax(‘API/Validate/Customer?column=1&rowid=2&vmnr=3&isik=4’, { data: JSON.stringify({ headerData: $(“#_form”).serializeArray() }), async: false, contentType: “application/json; charset=utf-8”, dataType: “json”, type: “POST” }); 它由ASP.NET MVC4 Web API控制器接收validation: public class ValidateController : ApiController { public class Body { public Dictionary headerData { get; set; } public Dictionary rowData { get; set; } } public HttpResponseMessage Validate( string id, string column, string […]