Tag: angularjs

如何使用AngularJS删除一个项目后刷新项目列表?

我是AngularJS领域的新手,我正在尝试将其与ASP.NET Web API一起使用。 我现在正在努力使用删除function。 用户应该能够从项目列表中删除项目,并且当他成功删除项目时,应该在删除后立即更新(或刷新)列表。 我已经实现了删除function,但是删除后列表没有更新,我不知道为什么。 这是Web API中的删除function代码: // DELETE api//5 public void Delete(int id) { itemRepository.DeleteItem(id); } 这是AngularJS控制器代码: app.controller(‘itemsController’, [‘itemsFactory’, ‘itemFactory’, function (itemsFactory, itemFactory) { var vm = this; vm.message = “Welcome to Items Page”; vm.Items= itemsFactory.query(); // callback for ng-click ‘deleteItem’: vm.deleteItem = function (aId) { itemFactory.delete({ id: aId }); vm.Items= itemsFactory.query(); }; […]

用于多部分视图的角度控制器结构

我需要使用AngularJS和web api在SPA中创建此布局。 工作流程如下: 当控制器加载时,从api获取两组数据(上面的表和左边的表 – 例如2次调用api / data1和api / data2 ) 一旦用户单击上表中的行,详细信息就会被提取到右侧的框中( api / data1 / 3434 / detail ) 当用户单击详细信息框中的某些条目时,相关条目将在左侧表格中突出显示。 我开始创建一个包含所有内容的视图,也是一个暴露所有必要内容的属性的控制器,但现在它看起来像这样(伪) myPageController table1Data : Array; table2Data : Array; userSelectedFromTable1 : IData1Model; userSelectedFromTable2 : IData2Model; 我觉得这不是很好的做法。 有没有办法将零件细分为某种局部视图? 子控制器? 或者这是一种常见的方法吗? 当他要为多种数据/ api端点服务时,通常的控制器会是什么样子? 编辑 我应该澄清,这只是一个更大的应用程序的一个特定页面(部分)。 大多数部件只是一种数据的前端,例如一个控制器,一个模型,一个api调用等。将页面视为某种仪表板,其中显示多个数据并相互交互。

具有子集合的AngularJs Post Object到MVC WebAPI

我正在开发一个AngularJS应用程序,并且服务js中的一个方法将数据发布到具有C#中以下对象结构的web api public class InvitationModel { public string Name { get; set; } public string Email { get; set; } public EventModel[] EventList { get; set; } } public class EventModel { public string EventName { get; set; } public int TotalAdults { get; set; } public int TotalChildren { get; set; } public bool […]

除非Fiddler正在运行,为什么IE11会创建空白的post请求?

我的AngularJS $ http发布对我的C#WebAPI restful服务的请求在Internet Explorer 11的Windows 8.1上失败。Firefox和Chrome都可以正常工作。 更多细节: IT部门说我们的网络没有代理 所有浏览器都不会选中所有“自动检测”和“使用代理”设置 请求在我的localhost上无法访问IIS,并在本地服务器上运行站点和服务 IE11的增强保护模式已关闭 请求的连接头是’keep-alive’(我也尝试’关闭’,它仍然失败) 有时一个请求会成功,只有第二个请求才会失败 没有显示错误 – IE的网络选项卡中的请求只显示’待定’,所有标题和正文都是空白的 我使用的是HTTP,而不是HTTPS 我已经尝试了元标记’X-UA-Compatible’IE9和Edge 在他们的机器上使用IE11的同事的请求也失败了 当Fiddler运行时,所有浏览器中的所有调用都能正常工作 Visual Studio 2013浏览器链接已关闭(因此SignalRArtery JS文件不会不断调用服务器并干扰测试) 我的AngularJS请求调用如下所示: var url = UrlService.GetUrlOfApi() + ‘Account/SignIn’; var postData = { ‘username’ : username, ‘password’ : password }; $http( { ‘url’: url, ‘data’: postData, ‘method’: ‘POST’ }) .success(function (data) { […]

在MVC6中如何阻止直接访问wwwroot中的文件夹?

我们正在开发一个最新的MVC框架中的应用程序,到目前为止一切都很棒。 在我们的应用程序中,我们决定在wwwroot / app下的项目中嵌入一个角度应用程序。 我创建了一个app控制器并查看和禁止访问该应用程序,除非用户获得授权。 当未经授权的用户尝试访问localhost / app时,这非常有效 – 它将它们踢回C#应用程序登录页面。 我想更进一步,并禁止访问该文件夹中的直接文件,例如localhost / app / scripts / controllers / name.js或部分html文件/app/partials/name-partial.html。 在过去,我将进入web.config并添加以下代码,但我没有找到最新框架的等效项。 理想情况下,如果可能的话,我希望这是startup.cs或appsettings.json中的条目

405方法不允许Web API 2

我已经浏览了几乎所有我能找到的文章,SO等等。 我已经对Web.config进行了更改以满足答案,因为它们似乎都指向删除WebDAV模块和处理程序。 但是,我仍然收到错误: 405方法不允许 请求的资源不支持http方法’PUT’。 注意:这最初只是一个MVC 4项目。 我添加了工件来支持Web API。 好像我可能错过了一些东西。 注意: GET调用在Angular中运行得很好。 Web API路由配置 configuration.Routes.MapHttpRoute( name: “Default API”, routeTemplate: “api/{controller}/{id}”, defaults: new { action = “Get”, id = RouteParameter.Optional }, constraints: new { id = @”[\da-z-]{36}” }); configuration.Routes.MapHttpRoute( name: “Default API with Action”, routeTemplate: “api/{controller}/{action}”, defaults: new { action = “Get” }); var formatter = […]

POST请求标头中的content-type缺少FormData边界

我使用的代码与我在文件上传的类似项目中成功使用的代码相同,但由于某种原因,边界永远不会添加到请求标头中的content-type属性中。 这导致我的C#web-apifunction无法检测到图像。 这是我使用angularjs的post请求: var formData = new FormData($(‘#testform’)[0]); $http({ url: serviceBase + ‘api/Client/’ + item.practiceID + ‘/SavePhoto’, method: “POST”, data: formData, headers: { ‘Content-Type’: false }, transformRequest: function (data) { return data; } }).success(function (response) { }).error(function () { }); 这是请求的样子: Request URL:http://localhost:56769/api/Client/178/SavePhoto Request Headers Provisional headers are shown Accept:application/json, text/plain, */* Authorization:Bearer JfDnrAIkSttZ8GnHa-Wo9wBH-HVWpbiUgGSic11DF_OlTgseuTPgTisxybvEyw2fEyer1FJ7DjKWqK15P-ZdhO_X1aHp7-GiIW2Q4BTF5svTyJKWtM2jk-XEN6qXuEIhAi6-phryd_LlGLOlLMYMKhQZGULxdyk_dUvDGt6bY5Z0L-LbV5uc74q3MyLMMj_vypNgbFCAxGEAGeeeGlP7jwlyyz7EY-eRfRhXxjFqOjI Content-Type:false […]

使用angularjs将多个对象发送到webapi

我的ASP.NET WebApi应用程序中有以下控制器: [Route(“api/PutItem/”)] [HttpPut] public IHttpActionResult PutItem(Guid id, Item item) { if (!ModelState.IsValid) } 我在“Items”AngularJs服务中有以下内容 var doEditItem = function(item){ var deferred = $q.defer(); console.log(‘item’, item); var config = { headers: { ‘Authorization’: “Bearer ” + $rootScope.token } //,params: {id:item.ItemId} } $http.put(sitesettings.url() + “api/PutItem/”, item, config) .success(function(data){ deferred.resolve(data); })…. 我最终收到这条消息: 没有找到与请求URI匹配的HTTP资源’ http:// localhost:63289 / api / […]

AngularJs和ASP.NET MVC 5-ng-model覆盖文本框值

我有一个使用ASP.NET MVC 5使用@Html.TextBoxFor构建的表单,用我的模型填充表单(例如,在表单导航或服务器端validation失败后)。 我现在已经使用Angular引入了客户端地址查找,这意味着现在使用ng-model修饰了一些表单字段,以使Angular查找能够填充搜索到的地址。 例如: @Html.TextBoxFor(m => m.Town, new { @class=”form-control”, ng_model=”address.town” }) 现在,添加ng-model会覆盖重新加载页面时从MVC模型设置的值。 在浏览器中查看源代码显示文本框值已从MVC模型正确设置为Town ,但Angular随后出现并使用address.town填充它,该address.town为空,因此表单不显示任何值。 我怎样才能阻止Angular这样做呢?

尝试使用angularJS和c#webapi从服务器下载文件

将文件上传到服务器时,它很棒; 没有损坏的文件。 然而,当我下载文件时(除了纯粹的txt:s,它们是woork),它们的大小会变大并变得腐败。 经过大量的调查,我不知道会出现什么问题。 我只是将文件作为流写入响应并下载blob。 欢迎任何想法! 严重依赖此Thread解决方案; 使用AngularJS从ASP.NET Web API方法下载文件 现行守则如下; 的WebAPI: [Route(“GetFile”)] public HttpResponseMessage GetFile() { HttpResponseMessage result = null; //Get file object here try { IEnumerable headerValues = Request.Headers.GetValues(“fileID”); int key = Int32.Parse(headerValues.FirstOrDefault()); var fetchFile = db.FileRecords.Single(a => a.id == key); var localFilePath = fetchFile.path + fetchFile.name; if (!System.IO.File.Exists(localFilePath)) { result = Request.CreateResponse(HttpStatusCode.Gone); […]