C# 将表单添加到umbraco v6 pure razor视图,以调用曲面控制器动作传递ID
我有一个razor视图,它只读取querystring值,将参数传递给一个类库,该类库返回事物的集合,因此C# 将表单添加到umbraco v6 pure razor视图,以调用曲面控制器动作传递ID,c#,asp.net-mvc,razor,umbraco,C#,Asp.net Mvc,Razor,Umbraco,我有一个razor视图,它只读取querystring值,将参数传递给一个类库,该类库返回事物的集合,因此 @inherits UmbracoTemplatePage @{ Layout = "LayoutDefaultView.cshtml"; } @{ if (Request.QueryString["newCust"] == "true") { do stuff } 我无法更改上面的代码,但我需要在上面的视图中创建新功能,以便我可以将I
@inherits UmbracoTemplatePage
@{
Layout = "LayoutDefaultView.cshtml";
}
@{
if (Request.QueryString["newCust"] == "true")
{
do stuff
}
我无法更改上面的代码,但我需要在上面的视图中创建新功能,以便我可以将ID传递给另一个基于viewmodel的视图,例如
@using (Html.BeginUmbracoForm<NewSurfaceController>("newAction", FormMethod.Post, new {id = custId}))
我该怎么做?我知道这不是最佳做法,但这是一个快速解决方案,因为我无法更改任何旧代码如果您在正确的轨道上,看起来您只需要添加曲面控制器和新视图 在现有视图中,需要调用新的控制器,因此
@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>