将表单添加到 umbraco v6 纯剃须刀视图,以调用传递 ID 的表面控制器操作
本文关键字:调用 ID 操作 控制器 表面 添加 表单 umbraco v6 视图 剃须刀 | 更新日期: 2023-09-27 18:32:58
我有一个 razor 视图,它只是读取查询字符串值以将参数传递给返回事物集合的类库,因此
@inherits UmbracoTemplatePage
@{
Layout = "LayoutDefaultView.cshtml";
}
@{
if (Request.QueryString["newCust"] == "true")
{
do stuff
}
我无法更改上面的代码,但我需要在上面的视图中创建新功能,以便我可以将 ID 传递给另一个基于视图模型的视图,例如
@using (Html.BeginUmbracoForm<NewSurfaceController>("newAction", FormMethod.Post, new {id = custId}))
我该怎么做? 我知道这不是最佳实践,但这是一个快速解决方案,因为我无法更改任何遗留代码
您走在正确的轨道上,看起来您只需要添加您的 Surface 控制器和新视图。
在现有视图中,需要调用新控制器,因此
@using (Html.BeginUmbracoForm(
"PerformSomeAction",
"MyNewController",
FormMethod.Post,
new { id = custId }))
{
@* Your form code and submit button goes here *@
}
现在是控制器本身。我们必须继承 Umbracos SurfaceController 类。
public class MyNewController : Umbraco.Web.Mvc.SurfaceController
{
[HttpPost]
public ActionResult PerformSomeAction(int id)
{
var model = new MyNewModel()
{
Id = id
};
return View(model);
}
}
然后,您可以为曲面控制器创建一个新视图,以便能够将其用于强类型模型。
@model MyNewModel
@{
Layout = null;
}
<h1>The ID is @Model.Id.ToString()</h1>