我目前正在使用Html.EditorFor <>方法生成编辑器字段,但我想使用类似的东西以只读格式显示字段信息,例如详细信息页面,即带有字段名称后跟一个标签的标签带有字段值的标签.
目前在MVC中是否有任何等效的产生?或者我将不得不创建一个自定义助手?
提前致谢.
编辑:我知道DisplayFor和LabelFor,它只是手动必须组合这些?
我在模型类中将属性标记为只读,如下所示:
public class RegisterModel
{
[Display(Name = "User name")]
[ReadOnly(true)]
public string UserName { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
在我看来:
@Html.EditorFor(m => m.UserName)
Run Code Online (Sandbox Code Playgroud)
但是当我运行应用程序时,文本框不是只读的.
我知道我可以在视图中使用html属性使其只读,但我更喜欢这可以在模型类本身中完成.
可以实现吗?
我正在使用Html帮助器向页面输出文本框.我想根据模型中的布尔值是true还是false来动态添加disabled属性.
我的模型有一个返回布尔值的方法:
<% =Model.IsMyTextboxEnabled() %>
Run Code Online (Sandbox Code Playgroud)
我目前正在渲染文本框,如下所示,但我想现在启用或禁用它:
<% =Html.TextBox("MyTextbox", Model.MyValuenew { id = "MyTextbox", @class = "MyClass" })%>
Run Code Online (Sandbox Code Playgroud)
如果Model.IsMyTextboxEnabled()的返回值== true,我希望输出以下内容:
<input class="MyClass" id="MyTextbox" name="MyTextbox" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)
如果它== false,我希望它输出为:
<input class="MyClass" id="MyTextbox" name="MyTextbox" type="text" value="" disabled />
Run Code Online (Sandbox Code Playgroud)
最干净的方法是什么?
对于一个愚蠢的问题感到抱歉,但我无法完全理解会发生什么,如果这是我怀疑的问题,那么我真的很茫然。我正在使用弹簧靴+百里香叶+物化CSS来显示和验证表单。现在我在很多例子中没有遇到的是这种情况:
一些表单字段是预先填写的,对客户端来说应该被禁用,显示其预先填写的值。这种预填充发生在控制器中,而我处理其他一些请求,并重定向到该视图
我正在使用th:object这样将pojo绑定到表单
<form id="register_form" action="#" th:action="@{/showform}" th:object="${userInfo}" method="post">
<div class="input-field">
<label th:text="#{label.surname}" for="surname"></label>
<input type="text" th:field="*{surname}" id="surname" th:attr="value=${userInfo.surname}" />
</div>
<div class="input-field">
<label th:text="#{label.name}" for="givenname"></label>
<input type="text" th:field="*{givenname}" id="givenname" th:attr="value=${userInfo.givenname}" disabled="disabled" />
</div></form>
Run Code Online (Sandbox Code Playgroud)
并将其放入控制器的POST处理程序中,如下所示:
@RequestMapping(value = {"/showform"}, method = RequestMethod.POST)
public ModelAndView submitFormPage(@ModelAttribute("userInfo") @Valid UserInfo userInfo,
BindingResult bindingResult, RedirectAttributes redir)
{
ModelAndView mview = new ModelAndView();
if (bindingResult.hasErrors())
{
// show form again with error messages
mview.addObject("userInfo", userInfo);
mview.setViewName("/showform");
}
else
{
// ...
}
return mview;
}
Run Code Online (Sandbox Code Playgroud)
出于其他一些原因,存在RedirectAttributes。如您所见,表单上有两个元素,第一个被启用,第二个被禁用。它们的值已正确填入POJO中的预填充值,然后通过ModelMap传递到视图。我也可以在GET处理程序中跟踪它。 …
asp.net-mvc ×3
asp.net ×2
attributes ×1
c# ×1
html ×1
html-helper ×1
materialize ×1
spring ×1
thymeleaf ×1