我们目前正在尝试使用现代前端框架,例如对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/>)