Asp.net mvc DNN MVC模板-是否有关于如何开发模块的良好文档
在过去的两天里,我一直在努力寻找关于如何使用MVC框架为DOTNETNUKE CMS构建模块的清晰且举例说明的文档 对于这样规模的CMS来说,首先向应用程序开发人员宣传他们支持MVC是非常不幸的,然后在如何构建(比如说一个非常简单的表单)方面几乎没有什么信息 这就是我现在所取得的成就。我正在尝试建立一个基本的联系我们表单:Asp.net mvc DNN MVC模板-是否有关于如何开发模块的良好文档,asp.net-mvc,dotnetnuke-7,dotnetnuke-8,Asp.net Mvc,Dotnetnuke 7,Dotnetnuke 8,在过去的两天里,我一直在努力寻找关于如何使用MVC框架为DOTNETNUKE CMS构建模块的清晰且举例说明的文档 对于这样规模的CMS来说,首先向应用程序开发人员宣传他们支持MVC是非常不幸的,然后在如何构建(比如说一个非常简单的表单)方面几乎没有什么信息 这就是我现在所取得的成就。我正在尝试建立一个基本的联系我们表单: 设置控制器操作 // GET: FormEntry Index .. [ModuleAction(ControlKey = "Add", TitleKey = "AddIt
// 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>
@*@Html.ValidationSummary(true)*@
@Dnn.LocalizeString(“lblName”)
@Html.TextBoxFor(m=>m.VisitorName)
@Html.ValidationMessageFor(m=>m.VisitorName,@Dnn.LocalizeString(“VisitorNameRequired”))
@Dnn.LocalizeString(“lblVisitorEmail”)
@Html.TextBoxFor(m=>m.VisitorEmail)
@Html.ValidationMessageFor(m=>m.VisitorEmail,@Dnn.LocalizeString(“VisitorEmailRequired”))
@Dnn.本地化字符串(“lblPhone”)
@Html.TextBoxFor(m=>m.VisitorPhone)
@Dnn.本地化字符串(“LBL消息”)
@Html.TextAreaFor(m=>m.VisitorMessage)
@Html.ValidationMessageFor(m=>m.VisitorMessage,@Dnn.LocalizeString(“VisitorMessageRequired”))
@Html.HiddenFor(m=>m.ModuleId)
@Dnn.本地化字符串(“提交”)
期待DNN社区的消息。一个不错的DNN8 MVC模块示例项目是我的,您可以从github下载 “我的编辑视图和控制器”具有可以签出的具有工作验证的表单字段 确保单击submit按钮时,它正在输入您的控制器方法(我假设该视图根据您的操作方法称为FormEntry?) 此外,处理post的操作方法应该返回操作结果,而不是字符串 在我的post处理程序中,如果ModelState.IsValid为true,我将在持久化表单数据后返回RedirectToRouteResult,否则我将返回具有相同模型的当前视图,该模型将触发验证
[HttpPost]
[DotNetNuke.Web.Mvc.Framework.ActionFilters.ValidateAntiForgeryToken]
public ActionResult Edit(MenuItem item)
{
if (ModelState.IsValid)
{
//Persist form information
//Go to default view (Index)
return RedirectToDefaultRoute();
}
// Return to my edit view if there was an error.
return View(item);
}
MVC模块开发的官方文档是。您还可以找到博客、社区项目和DNNHero.com教程,这些内容涵盖了该主题。此外,我的答案中的示例MVC项目至少给出了一个工作示例。您对这些资源有进一步的了解吗?@DotNetNuclear:谢谢您的回复。这个周末我将继续工作。我的观点是,例如,我猜有一个.dnn文件用于路由,而不是RouteConfig.cs(与asp.net MVC相反)。这是怎么解释的?验证将如何在客户端和服务器端工作?如何将用于验证的模态类上的数据注释与客户端验证联系起来?。我是一名Android开发者+一名web开发者。我在其他框架中看到了非常成熟的文档,但在DNN中看不到