gpt4 book ai didi

asp.net-mvc - MVC 5 脚手架不为基本 EF 派生数据发出 Bootstrap 类

转载 作者:行者123 更新时间:2023-12-04 10:52:14 26 4
gpt4 key购买 nike

首先,我是 MVC 和 ASP.NET 的新手,如果我遗漏了一些简单的东西,我深表歉意。

我正在开发一个代码优先的 MVC 5 应用程序,为简洁起见,假设我有两个像这样定义的模型:

public class Platform
{
[Key]
public int Id { get; set; }

[Required(ErrorMessage = "You must select a manufacturer")]
[DisplayName("Manufacturer")]
public int ManufacturerId { get; set; }
public virtual Manufacturer Manufacturer { get; set; }

[Required(ErrorMessage="You must enter a name for the platform")]
[StringLength(50, ErrorMessage="Reduce length to 50 characters or less")]
public string Name { get; set; }
}


public class Manufacturer
{
[Key]
public int Id { get; set; }

[Required(ErrorMessage="You must enter a name for the manufacturer")]
[StringLength(50, ErrorMessage="Reduce length to 50 characters or less")]
public string Name { get; set; }

public virtual ICollection<Platform> Platforms { get; set; }
}

为这些模型创建“MVC 5 Controller 和 View ,使用 Entity Framework ”脚手架时,所有 CRUD 操作都正常工作。另一方面,表单元素未格式化,缺少 form-control Bootstrap 想要的类。

我可以通过添加类似 @Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { @class = "form-control" }) 的 EditorTemplate 来解决每种类型的问题。在其中,但 Bootstrap MVC 5 项目的脚手架肯定应该已经发出有效代码了吗?查看各种 MVC 5 教程,它们似乎以正确的样式正常工作,因此我对自己做错了什么感到有些困惑。

作为引用,每个模型的 Create.cshtml 文件中的输出(为简洁起见剪裁到重要的表单元素)是:
<div class="form-group">
@Html.LabelFor(model => model.ManufacturerId, "ManufacturerId", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("ManufacturerId", String.Empty)
@Html.ValidationMessageFor(model => model.ManufacturerId)
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>


<div class="form-group">
@Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>

为什么是 ManufacturerIdDisplayName 被指定为下拉菜单的标签文本是在模型中设置的?

为什么下拉使用 DropDownList()而不是强类型 DropDownListFor() ?

先感谢您。

最佳答案

看起来 MVC 5.1 将针对 Bootstrap 3 的表单控制问题提供解决方法,如 here 所述.可以为 EditorFor 传递样式。

关于asp.net-mvc - MVC 5 脚手架不为基本 EF 派生数据发出 Bootstrap 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19727551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com