我正在努力在我的MVC3表单输入上显示水印(所谓的占位符).
这里的帖子已经很少了,包括这里非常专注的帖子:
使用.NET MVC 3 Razor Editor进行扩展的Html5占位符?
在这些帖子中,建议创建调整的html.TextBox模板.在我的情况下,我的资产是我不需要任何编辑器模板,因为我正在内联调整它们.
比长谈更好,这是实际代码的相关部分:
〜/型号/ myModel.cs
namespace myProject.Models {
public class myFormModel {
...
[Display(Name = "firstFieldName", Prompt = "firstFieldPrompt")]
public string firstFieldValue { get; set; }
...
}
}
Run Code Online (Sandbox Code Playgroud)
〜/控制器/ myFormSurfaceController.cs
namespace myProject.Controllers {
public class myFormSurfaceController : SurfaceController {
...
[ChildActionOnly]
public PartialViewResult myForm()
{
return PartialView("myPartialView", new myFormModel());
}
...
[HttpPost, ValidateAntiForgeryToken]
public ActionResult handleMyFormSubmit(myFormModel model) {...}
...
}
}
Run Code Online (Sandbox Code Playgroud)
〜/查看/ myProject的/部分/ myPartialView.cshtml
@model myFormModel
@{
using (Html.BeginUmbracoForm("handleMyFormSubmit", "myFormSurface", null, new Dictionary<string, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在一个表面控制器中编写一个childaction函数,该控制器由宏调用以呈现PartialView.
我需要在此函数中访问我当前的页面属性,然后调整渲染的PartialView.
我从Jorge Lusar的ubootstrap代码中得到了这个,它在HttpPost ActionResult函数上工作正常:
var renderModel = (UmbracoRenderModel)ControllerContext.RouteData.DataTokens["umbraco"];
var currentPage = renderModel.CurrentNode.AsDynamic();
Run Code Online (Sandbox Code Playgroud)
问题是我在[ChildActionOnly] PartialViewResult函数上抛出此错误:
Unable to cast object of type 'System.String' to type 'Umbraco.Cms.Web.Model.UmbracoRenderModel'.
on 'var renderModel = (UmbracoRenderModel)ControllerContext.RouteData.DataTokens["umbraco"];'
Run Code Online (Sandbox Code Playgroud)
DataTokens ["umbraco"]中的数据似乎在两个函数之间发生了变化.如果我在每一个上显示DataTokens ["umbraco"].ToString(),会发生以下情况:
在[ChildActionOnly]上显示公共PartialViewResult Init() - >"Surface".
在[HttpPort]上显示公共HandleSubmit(myModel模型) - >"Umbraco.Cms.Web.Model.UmbracoRenderModel".
感谢您的任何建议.
尼古拉斯.