.net 如何使用Razor而不是HTML呈现CSS
我有一个CSS使用此代码.net 如何使用Razor而不是HTML呈现CSS,.net,asp.net-mvc-3,razor,.net,Asp.net Mvc 3,Razor,我有一个CSS使用此代码 input[type="text"] { border: 1px solid #CCCCCC; border-radius: 5px 5px 5px 5px; box-shadow: none; padding: 5px 8px; } HTML页面有以下使用CSS的代码 <input id="product-name" type="text" required="required"> 我想在视图中使用Razor来呈现名
input[type="text"] {
border: 1px solid #CCCCCC;
border-radius: 5px 5px 5px 5px;
box-shadow: none;
padding: 5px 8px;
}
HTML页面有以下使用CSS的代码
<input id="product-name" type="text" required="required">
我想在视图中使用Razor来呈现名为product name的文本框
我如何才能做到这一点?您可以使用
文本框
帮助程序:
@Html.TextBox("product-name", null, new { required = "required" })
但我个人建议您使用视图模型:
public class MyViewModel
{
public string ProductName { get; set; }
}
@model MyViewModel
@Html.TextBoxFor(x => x.ProductName, new { required = "required" })
然后让控制器操作填充并将此视图模型传递给视图:
public ActionResult Index()
{
MyViewModel model = new MyViewModel();
model.ProductName = "some product name";
return View(model);
}
现在,您的视图可以强类型化为视图模型:
public class MyViewModel
{
public string ProductName { get; set; }
}
@model MyViewModel
@Html.TextBoxFor(x => x.ProductName, new { required = "required" })
您只需添加helper并向其添加class属性即可将其连接到css
@Html.TextBox("name", null, new { id = "product-name", @class = "textbox", required = "required" });
css将更改为
.textbox {
border: 1px solid #CCCCCC;
border-radius: 5px 5px 5px 5px;
box-shadow: none;
padding: 5px 8px;
}
如何控制.cs类中的文本?我已经用视图模型更新了答案。或者,您可以通过控制器操作在ViewData中设置值:
ViewData[“product name”]=“some product name”代码>。但就我个人而言,这不是我推荐你的方法。强类型视图和视图模型是实现ASP.NET MVC的正确方法。使用textBoxFor感觉不到CSS样式,我应该使用CSS中名为text的类,但即使我更改了新的{@class=“text”}它也感觉不到。关于该做什么/好的,它确实有效,但在使用jQuery验证它时,还有一件事,即使框没有值,它也总是返回true。您以前是否遇到过此问题?请去掉required=“required”
属性,并使用[required]
验证属性装饰视图模型属性。现在,您需要做的就是包含jquery.validate.unobtrusive.js
,无需编写任何自定义代码,即可获得自动客户端验证。我如何控制.cs文件中该文本框中的输入文本?