gpt4 book ai didi

dynamic - Orchard 模块 - 如何从驱动程序返回强类型模型而不是动态模型

转载 作者:行者123 更新时间:2023-12-02 15:30:33 26 4
gpt4 key购买 nike

我创建了一个 ContactUs 模块,当用户单击“提交”按钮时,该模块会发送电子邮件。

一切都很完美。但是,我很好奇是否可以返回强类型模型而不是动态类。

例如,以下是我的 Drivers\ContactUsDriver.cs 显示函数:

protected override DriverResult Display(ContactUsPart part, string displayType, dynamic shapeHelper)
{
return ContentShape("Parts_ContactUs",
() => shapeHelper.Parts_ContactUs(
Name: part.Name));
}

如您所见,上面返回的是动态 Parts_ContactUs。

现在,这是我的 Views\Parts\ContactUs.cshtml 的快照:

@model dynamic

@using (Html.BeginForm("Send", "ContactUs", new { area = "ContactUs" }, FormMethod.Post))
{
<fieldset>
<legend>Contact Us</legend>
<div id="contact-us" class="area">
@Html.TextBox("Name", "")
</div>
<div id="submitArea" class="button">
<input type="submit" value="Submit Message">
</div>
</fieldset>
}

正如您在上面所看到的, View 绑定(bind)到@model动态。因此,我必须执行以下操作

@Html.TextBox("Name", "")

有没有一种方法可以绑定(bind)到模型(例如 ContactUsModel),从而执行以下操作?

@Html.TextBoxFor(m => m.Name)

特别是,我很感兴趣,所以我可以使用 DataAnnotation 属性编写 jquery 验证。

最佳答案

这是完全有可能的。创建形状时,只需提供所需的模型类型作为第一个参数:

protected override DriverResult Display(
ContactUsPart part,
string displayType,
dynamic shapeHelper)
{
return ContentShape("Parts_ContactUs",
() => shapeHelper.Parts_ContactUs(typeof(MyClass), Name: part.Name));
}

关于dynamic - Orchard 模块 - 如何从驱动程序返回强类型模型而不是动态模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16476608/

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