c# - 如何从 ASP.NET MVC 5 中的模型创建表单?

标签 c# asp.net asp.net-mvc

是否有一个内置函数基本上从模型中获取一个对象参数并基于它创建一个完整的表单?

目前我正在为每个属性做一行:

@model AutomatedTellerMachine.Models.ContactFormModel
@using (Html.BeginForm())
{
    <div class="form-horizontal">

        <div class="form-group">
            <div class="col-md-10">
                <input type="text" name="name" class="form-control" />
                @Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-10">
                <input type="text" name="phone" class="form-control" />
                @Html.ValidationMessageFor(model => model.phone, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-10">
                <textarea name="message" class="form-control"></textarea>
                @Html.ValidationMessageFor(model => model.message, "", new { @class = "text-danger"})
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-10">
                <input type="submit" value="Send" class="btn btn-default"/>
            </div>
        </div>
    </div>

}

我意识到你可以让 Visual Studio 为你创建一切,但我需要混合搭配。

最佳答案

您可以使用编辑器模板执行此操作。创建一个名为 ContactFormModel.cshtml 的新 Razor View (名称必须与型号匹配)。在该文件中,复制现有 View 中的所有代码。

您可以使用普通的 Razor 语法来呈现您在调用 EditorFor() 时想要包含的任何 HTML。在这个模型上。

然后,您可以使用 Razor 渲染您的自定义模板:

@Html.EditorForModel(Model)

如果您想对模型中的特定对象(例如, YourObjectName )而不是整个对象执行相同操作,请创建一个名为 YourObjectName.cshtml 的文件。 .

在此文件的顶部:
@model NameSpace.YourObjectName

然后在要在其中呈现自定义编辑器模板的外部 View 中使用它:
@Html.EditorFor(model => model.YourObjectPropertyName)

关于c# - 如何从 ASP.NET MVC 5 中的模型创建表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842771/

相关文章:

c# - MongoDB C# 驱动程序 : connection string for sharding over replica set

c# - 在 MonoGame (XNA) 中绘制贝塞尔曲线会产生划痕线

c# - 如何从 Windows 窗体项目显示/打开/启动 Excel 工作簿项目 (Sheet1)?

c# - 编辑 : NGINX reverse proxy ASP. NET Core 5.0 : localhost:5000 closes connection but www. google.com 有效

asp.net - 将 .cs 类文件转换为 .dll

c# - 在 B2C 租户上使用 Microsoft.Azure.ActiveDirectory.GraphClient 查询 User.SignInNames

C# MVC 5 多个路由不工作服务器

c# - emgucv:C#中的Pan Card不当偏斜检测

c# - MVC 通用存储库/工作单元模式 - 扩展存储库

asp.net-mvc - 在 ASP.NET MVC 中使用 DotNet OpenId 记住我