与MVC数据注释和不引人注意的验证作出反应

tot*_*oob 16 validation asp.net-mvc asp.net-mvc-4 reactjs

我们目前正在寻找现代前端框架的体验,例如对MVC4项目的反应.我们在模型中使用数据注释,并且我们有很多在UI上使用不显眼的验证的表单.

主要的是找到一种方法来使用react来生成内容,同时仍然能够利用不显眼的验证等功能.据我所知,它实际上只是在使用像TextAreaFor,ValidationMessageFor这样的html助手时动态生成的一堆data-val属性,其属性从模型类中的数据注释中获取值.

我尝试了几件事,包括

 ReactDOM.render(
 @using (Html.BeginForm("xyz", "xyz", FormMethod.Post))
 {
      @Html.TextBoxFor(x => x.Email)
Run Code Online (Sandbox Code Playgroud)

这导致输入框由于某种原因无法编辑

我更喜欢做更喜欢的事情

 ReactDOM.render(
      <form><input type="text" data-val="@Model.datannotations[1].val" /></form>
Run Code Online (Sandbox Code Playgroud)

那可能吗?如何从模型中获取data-val值?实现这一目标的最佳方法是什么?

gui*_*me5 1

这应该是不可能的。

这是开发用户界面的两种不同方式。剃刀方式是在服务器端预处理标记代码来填充它。

React 使用生命周期方法在另一个流程中工作,您应该已经加载了数据注释值以便在渲染时访问它。

因此,要使其正常工作,您必须首先运行 Razor 引擎来填充标记,然后使用 React 引擎。我不建议使用这种方法,因为用它来开发太难了,开发团队在开发时必须牢记这种流程

注意这一点

ReactDOM.render(<ComponentMustHaveJSX/>)
Run Code Online (Sandbox Code Playgroud)