小编Joh*_*Way的帖子

使用WebApi [Route]属性时,FluentValidation不起作用

我在我的WebApi项目控制器中成功实现了FluentValidation,该控制器只有一个HttpGet方法.当我添加另一个HttpGet方法时,我将路由属性添加到两个方法中.即[Route("Method1")]和[Route("Method2")].

现在无论我是否输入任何数据,ModelState都会返回true.

这是我的代码.

WebApiConfig

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {

        config.Filters.Add(new ValidateModelStateFilter());

        //FluentValidation
        FluentValidationModelValidatorProvider.Configure(config);

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "{action}/{id}",
            defaults: new { controller = "Menu", id = RouteParameter.Optional}
        );


    }
}
Run Code Online (Sandbox Code Playgroud)

ValidateModelStateFilter

public class ValidateModelStateFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (!actionContext.ModelState.IsValid)
        {
            actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

调节器

[HttpGet]
[Route("Method1")]
public IHttpActionResult ReadAllMenusByApplication([FromUri] ReadAllMenusByApplicationInput input)
{
        var result = new List<ApplicationMenu>();
        ...
} …
Run Code Online (Sandbox Code Playgroud)

c# model-validation fluentvalidation asp.net-web-api

7
推荐指数
1
解决办法
1455
查看次数

Angular`ng-click`在DataTables表行中不起作用

我有一个角度应用程序,也使用jquery.dataTables.当我使用数据表建立一个动态表与ng-click表中的数据角指令,它不火的ng-click事件.

我怀疑我需要使用角度$compile服务,但我没有成功找到明确的文档或示例.

任何帮助将不胜感激.

更新:我已经在DataTables方法的createdRow选项中添加了一些代码.我好像现在正在开火,但是我收到了一个错误

0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法'$ apply'

这是我的代码:

var app = angular.module('appy', []);
app.controller('myCtrl', [
  function() {
    var _this = this;

    $('#report').DataTable({
      data: [{
        "LastName": "Doe",
        "Link": "<button type=\"button\" ng-click=\"Ctrl.dataTablesAlert()\">Test Alert</a>"
      }],
      columns: [{
        "title": "Last Name",
        "data": "LastName"
      }, {
        "title": "Actions",
        "data": "Link"
      }],
      createdRow: function(row, data, dataIndex) {
        $compile(angular.element(row).contents())(_this);
      }
    });

    this.buttonAlert = function() {
      $('#buttondiv').addClass('success');
    };

    this.htmlAlert = function() {
      $('#htmltablediv').addClass('success');
    }; …
Run Code Online (Sandbox Code Playgroud)

datatables angularjs

4
推荐指数
1
解决办法
7721
查看次数