【发布时间】:2016-09-04 13:51:44
【问题描述】:
从过去 2 天开始,我一直在努力寻找关于如何使用 MVC 框架为 DOTNETNUKE CMS 构建模块的清晰示例文档。
对于这样规模的 CMS 来说,首先宣传他们支持 MVC 的应用程序开发人员,然后几乎可以忽略不计关于如何构建一个非常简单的表单的信息是非常不幸的。
这就是我现在所取得的成就。我正在尝试建立一个基本的联系我们表格:
-
设置控制器操作
// GET: FormEntry Index .. [ModuleAction(ControlKey = "Add", TitleKey = "AddItem")] public ActionResult Index() { return View(); } [HttpPost] // POST: [ActionName("FormEntry")] public string Post(FormEntry formEntry) { try { if (ModelState.IsValid) { FormEntryManager.Instance.CreateItem(formEntry); } return "success"; } catch(Exception ex) { return "error"; } } -
设置视图。
<div id="Item-@Dnn.ModuleContext.ModuleId"> <form id="formcontactus"> @*@Html.ValidationSummary(true)*@ <fieldset> <div class="dnnFormItem"> <div><label for="itemName">@Dnn.LocalizeString("lblName")</label></div> @Html.TextBoxFor(m => m.VisitorName) @Html.ValidationMessageFor(m => m.VisitorName, @Dnn.LocalizeString("VisitorNameRequired")) </div> <div class="dnnFormItem"> <div><label for="itemDescription">@Dnn.LocalizeString("lblVisitorEmail")</label></div> @Html.TextBoxFor(m => m.VisitorEmail) @Html.ValidationMessageFor(m => m.VisitorEmail, @Dnn.LocalizeString("VisitorEmailRequired")) </div> <div class="dnnFormItem"> <div><label for="itemDescription">@Dnn.LocalizeString("lblPhone")</label></div> @Html.TextBoxFor(m => m.VisitorPhone) </div> <div class="dnnFormItem"> <div><label for="itemDescription">@Dnn.LocalizeString("lblMessage")</label></div> @Html.TextAreaFor(m => m.VisitorMessage) @Html.ValidationMessageFor(m => m.VisitorMessage, @Dnn.LocalizeString("VisitorMessageRequired")) </div> @Html.HiddenFor(m => m.ModuleId) </fieldset> <button id="btnSumbit" type="button" class="dnnPrimaryAction">@Dnn.LocalizeString("Submit")</button> <a id="cancelEdit" href="#" class="dnnSecondaryAction">@Dnn.LocalizeString("Cancel")</a> </form> </div>
我的索引视图确实渲染成功,我可以看到我的表单。问题在于理解我将这些数据发布到 MVC Post 方法的方式。此外,我的模态类验证数据注释在客户端也不起作用。
我尝试在 Post 方法上通过 jQuery Ajax 发布,但这会引发内部错误。
期待收到 DNN 社区的来信。
【问题讨论】:
-
MVC模块开发的官方文档是dnnsoftware.com/docs/developers/about-modules/…。您还将找到涵盖该主题的博客、社区项目和 DNNHero.com 教程。此外,我的回答中的示例 MVC 项目至少提供了一个工作示例。您对这些资源有进一步了解吗?
-
@DotNetNuclear :感谢您的回复。我将在即将到来的这个周末恢复我的工作。我的观点是,例如我猜有一个 .dnn 文件用于路由而不是 RouteConfig.cs(与 asp.net MVC 相反)。这是在哪里解释的?验证将如何在客户端和服务器端工作?用于验证的模态类上的数据注释如何与客户端验证相关联?我是一名 Android 开发人员 + 一名网络开发人员。我在其他框架中看到了非常成熟的文档,但没有看到 DNN
标签: asp.net-mvc dotnetnuke-7 dotnetnuke-8