我们目前正在尝试使用现代前端框架,例如对MVC4项目做出反应。我们在模型中使用数据注释,并且我们有很多使用UI进行不干扰验证的表单。

最主要的是找到一种使用反应来生成内容的方法,同时仍然能够利用诸如非侵入式验证之类的功能。据我了解,它实际上只是一堆使用,data-val之类的html辅助工具动态生成的TextAreaFor属性,这些属性从模型类的数据注释中获取值。

我已经尝试了几件事,包括

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


由于某种原因,导致输入框不可编辑。

我更喜欢做类似的事情

 ReactDOM.render(
      <form><input type="text" data-val="@Model.datannotations[1].val" /></form>


那可能吗?无论如何,如何从模型中获取ValidationMessageFor值?实现此目标的最佳方法是什么?

最佳答案

这应该是不可能的。

这是开发UI的两种不同方法。
剃刀方式是在服务器端预处理标记代码以填充它。

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

因此,要使其工作,您必须首先运行剃须刀引擎以填充标记,然后再使用react引擎。
我不建议使用这种方法,因为它很难在此基础上进行开发,并且开发人员团队在开发时必须牢记这一流程

注意这个



ReactDOM.render(<ComponentMustHaveJSX/>)

08-16 08:09