Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何使用Razor而不是HTML呈现CSS_.net_Asp.net Mvc 3_Razor - Fatal编程技术网

.net 如何使用Razor而不是HTML呈现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来呈现名

我有一个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来呈现名为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文件中该文本框中的输入文本?