【发布时间】:2009-06-18 22:20:04
【问题描述】:
有趣的情况。我有一个 Html.Textbox() 从视图中呈现如下:
<%= Html.TextBox("title", Model.Title, new { @class = "txt" }) %>
在我的控制器中,我对标题进行了以下稍微简化的验证。为了论证起见,假设它发现了错误,并使用模型状态错误信息重新渲染视图。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditBook(string title) {
Model = new Book(ControllerContext.RequestContext);
if (String.IsNullOrEmpty(title))
{
title = String.Empty;
ModelState.AddModelError("title", "* Title is a required");
modelState.SetModelValue("title", ValueProvider["title"]);
}
else { // show confirmation }
if (!ModelState.IsValid)
{
return View("EditBook", Model);
}
}
当页面重新渲染时,我的 html 文本框正确地附加了 input-validation-error 类...但它没有用,因为它是第一个附加的类!我需要它来覆盖我的文本框中的所有现有样式。 html输出如下:
<input type="text" name="title" id="title" class="input-validation-error txt"/>
假设已定义以下 css 样式:
input.txt { border: 1px; color: #000 }
.input-validation-error { border: 2px solid #fff }
问题是,我原来的 css 类“txt”优先,并阻止我正确设置错误文本框的样式。
有什么想法吗?
【问题讨论】:
标签: asp.net-mvc