首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reactjs +ASP.MVC非突出验证

Reactjs +ASP.MVC非突出验证
EN

Stack Overflow用户
提问于 2015-11-17 18:30:02
回答 1查看 1.5K关注 0票数 2

我有下一个代码

代码语言:javascript
复制
componentDidMount() {
    super.componentDidMount();
    let jobj = $(ReactDOM.findDOMNode(this));
    $.validator.unobtrusive.parse(jobj);
}

运行此操作后,我得到错误:Uncaught TypeError:无法读取未定义的属性“未公开”

如何才能使导入ASP.MVC不显着和jquery验证?

EN

回答 1

Stack Overflow用户

发布于 2015-12-31 04:57:42

从错误来看,$.validator似乎还没有附加。

在呈现React组件之前检查是否遗漏了jquery.validate.min.js (参见这里)。

关于使用ASP.NET MVC和非阻塞,这也是我在过去几天一直在研究的问题。让我谈谈我对此的一些初步想法:

验证工作是开箱即用的React

从非凸性验证的工作方式来判断,只要您增强了JSX或TSX(类型抄本v1.6+),或者使用数据-val-*属性来响应脚本,这个不可靠的插件就已经为您带来了魔力。

代码语言:javascript
复制
var TextInputComponent = React.createClass({
    render() {        
    return (
        <div>
            <input data-val="true" data-val-required="error msg" name="Test" type="text" />
            <span className="text-danger"  data-valmsg-replace="true" data-valmsg-for="Test"></span>
        </div>
    );
}
});

问题空间

问题是我们(ASP.NET MVC开发人员)习惯于让Razor通过@Html.TextFor(.)为我们生成所有属性。方法(以及其他输入类型的变体)。现在,我们需要将这些属性传递给组件,以便它们知道如何对特定字段进行验证。

我正计划测试下列措施是否有效:

  1. 使用HtmlHelper的GetUnobtrusiveValidationAttributes方法获取与ViewModel元数据相关的所有属性。类似于这种扩展方法: 公共静态ModelMetadata.FromLambdaExpression(propertyExpression,,object> UnobtrusiveValidationAttributesFor( HtmlHelper html,Expression> propertyExpression) { var propertyName = html.NameFor(propertyExpression).ToString();var元数据=object> html.ViewData);var属性= html.GetUnobtrusiveValidationAttributes(propertyName,元数据);返回属性};
  2. 将此方法输出到JSON或Javascript对象中,并将其分配给Javascript变量(全局变量或ReactDOM.render方法的作用域)
  3. 使用JSX扩展特性将变量from (2)包含为道具。(见这里)

简而言之,要有一个完整的ASP.NET验证表单,我们需要告诉ReactJS组件所有必需的数据-val-* info。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33764406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档