【c# – 找不到ASP.NET Web API路由控制器】教程文章相关的互联网学习教程文章

c# – Web API控制器 – 查询字符串中的“action”参数【代码】

我有以下Web api控制器public class ApiController : Controller {[Route("api/test")][HttpGet]public string GetData(string key, string action, long id){var actionFromQuery = Request.Query["action"];return $"{key} {action} {id}";} }我在查询字符串中需要一个名为“action”的参数,因此它向后兼容现有的API.当我发出get请求时,操作方法参数被错误地分配给web api action ==控制器方法名称. 示例GEThttp://SERVER_IP/api...

c# – 为什么在MVC OnException中处理的异常没有命中错误控制器操作?【代码】

作为一种处理错误的全能方法,我将其添加到我的MVC Web应用程序中的BaseController中.public class BaseController : Controller {protected override void OnException(ExceptionContext filterContext){_logger.Error(filterContext.Exception, "Website error page displayed.");TempData["ErrorMessage"] = "Unspecified error - please contact support";filterContext.RouteData.Values["controller"] = "Error";filterContex...

c# – 如何避免在每个控制器中重复参数?【代码】

我想知道是否有办法避免重复自己将Request.Headers传递给每个服务方法?[HttpGet][Route("accounts({id:guid})")][Route("accounts")]public async Task<HttpResponseMessage> GetAccount(){var query = Request.RequestUri.AbsolutePath.Split('/').Last() + Request.RequestUri.Query;var response = await _accountService.GetAccount(query, Request.Headers);return response;}[HttpGet][Route("accounts/{id:guid}")]public ...

c# – MVC在其他控制器中使用DbContext【代码】

我有两个不同的控制器. 一个是默认的ASP.NET MVC Core:public ManageController(UserManager<ApplicationUser> userManager,SignInManager<ApplicationUser> signInManager,IEmailSender emailSender,ILogger<ManageController> logger,UrlEncoder urlEncoder) {_userManager = userManager;_signInManager = signInManager;_emailSender = emailSender;_logger = logger;_urlEncoder = urlEncoder; }和我自己用脚手架制作的:pub...

c# – 如何在Web API控制器中使用分层体系结构处理服务器错误【代码】

编辑: 我刚刚意识到SaveChangesAsync返回0并不意味着它失败了,实体框架总会在出现故障时抛出异常,所以检查SaveChanges == 0是多余的!保存更改应始终在下面的示例中返回1,如果某些操作失败,则将抛出异常. 但是,有些情况下使用其他东西并且它不是实体框架,所以这个问题就是这样. 服务器可能会失败,当我将所有数据访问代码放入控制器时,我可以这样处理它:[HttpPost] public async Task<ActionResult<Item>> CreateAsync([FromBody]...

涉及控制器和存储库的c#泛型问题【代码】

我有一个基本存储库类,其中包含所有常见的存储库方法(作为通用):public abstract class BaseRepository<T, IdType> : IBaseRepository<T, IdType>我的存储库来自这个基地,例如:public class UserRepository : BaseRepository<User, int>, IUserRepository我还有一个包含常见操作的基本控制器类,并在控制器中继承.存储库由DI注入其中.例如.public class UserController : BaseController<User> {private readonly IUserRepository...

c# – 如何将json对象传递给mvc控制器【代码】

我希望能够将2个参数传递给我的控制器.一个id和一个对象[]. 这是我的控制器:[HttpPost]public string SaveCoordinates(string Id, object[] pFrame) {string rslt = "ERROR";if (pFrame != null){try{List<Coordinates> pList = new List<Coordinates>();for (int i = 0; i < pFrame.Length; i++){Dictionary<string, object> kvps = (Dictionary<string, object>)pFrame[i];pList.Add(new Coordinates{Position = Convert.ToInt3...

c# – 如何使用URL将数据从javascript发送到ASP.NET MVC控制器【代码】

我需要一些帮助.我使用带有JavaScript和Knockout的ASP.NET MVC4编写小应用程序,我无法将数据从javascript发送到MVC Controller,反之亦然.例如,JS的一部分看起来像这样: JavaScript的self.Employer = ko.observable(); self.AboutEmployer = function (id) {$.ajax({ Url.Action("GetEmployer", "Home")cache: false,type: 'GET',data: "{id:" + id + "}",contentType: 'application/json; charset=utf-8',data...

c# – 在Application_BegineRequest中,我怎么知道请求何时是针对MVC控制器的呢?【代码】

在global.asax中的Application_BeginRequest事件中,如果请求是针对控制器操作方法,我只想触发一些逻辑. 当请求是针对像.js文件等资源时,事情就会被调用.解决方法:而不是使用global.asax,使用动作过滤器,然后您可以装饰确切的控制器或操作来执行您的逻辑. 覆盖以下一种或所有方法:public class MyActionFilterAttribute : ActionFilterAttribute {public override void OnActionExecuted(ActionExecutedContext filterContext){bas...

c# – MVC控制器:在保存之前使用LINQ检查表中是否存在重复值?【代码】

我有以下Create() – 我的制造商实体的POST控制器:// POST: INV_Manufacturers/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Create([Bind(Include = "Id,manufacturer_description,created_date,created_by,m...

c# – 需要使用angularjs向mvc控制器发送隐藏的输入值【代码】

我有一个隐藏的输入字段,其中包含我需要发送我的mvc控制器的值.$http({ method: 'GET', url: '/User/GetProjectsList' }) .success(function (data, status, headers, config) { $scope.workflow = [];$scope.Projects = data; }) .error(function (data, status, headers, config) {alert('error'); });隐藏的领域是:<input type="hidden" ng-model='ProjectId' value="{{ProjectsObj.IDWorkflow}}"></input>如何将值发送...

c# – Web Api 2控制器和处理程序之间有五秒钟的延迟

最近,我的Web Api 2 w / Entity Framework 6.1服务器上的Web请求速度急剧下降.向查询数据库的所有请求添加~5000ms.过去三天我一直在试图弄清楚我的头发. 建立: > Web Api 2.2>实体框架6.1.1> IoC的Autofac,DbContext是InstancePerLifetimeScope()以及其他所有内容.>一个自定义HttpParameterBinding,用于从访问令牌中获取实体ID.这会查询db.>只有一个DelegatingHandler,用于记录请求 我做了什么: >预先生成的视图,略有改进>我们查...

c# – web api控制器和城堡windsor生活方式【代码】

在web api控制器功能中,我使用两种服务,因为它们做独立的东西,我希望它们使用不同的工作单元(事务). 所有必要的组件(工作单元,存储库)都通过带有LifestylePerWebRequest的城堡windsor注入. 据我所知,解决方案是使用LifeStyleScoped但我有两个问题: >我希望LifeStyleScoped仅适用于这种特殊情况而不是一般情况>我找不到如何在控制器中使用LifeStyleScoped的单个示例. 任何其他建议或代码示例将不胜感激. 编辑:我没有提到单元工作没...

c# – WebAPI 2.使用相同的控制器方法响应所有HTTP谓词【代码】

我想用相同的控制器方法响应所有Http动词.我找到的唯一方法是通过装饰方法将所有的http方法attriubutes.在我看来,应该有一个更好的方法.是否有一个单一的装饰会更好,或者单个路线定义可能? [HttpDelete,HttpGet,HttpHead,HttpOptions,HttpPost,HttpPatch,HttpPut]解决方法:您可以使用AcceptVerbs属性来装饰您的控制器方法,如下所示.[AcceptVerbs("PATCH", "GET", "DELETE")]

c# – 如何避免重复为控制器中的每个操作发生的代码【代码】

我有一个控制器,可以提供多个页面.每个页面都有以下代码块:public class SchoolController : Controller {private UnitOfWork _unitOfWork = new UnitOfWork();public ActionResult Details(){var viewModel = new RegistryViewModel();School schoolBeingAccessed = _unitOfWork.SchoolRepository.GetLoggedinSchool();if (!schoolBeingAccessed.IsActive()){return RedirectToAction("NotActive");}if (!schoolBeingAccessed.Is...