Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将表单添加到umbraco v6 pure razor视图,以调用曲面控制器动作传递ID_C#_Asp.net Mvc_Razor_Umbraco - Fatal编程技术网

C# 将表单添加到umbraco v6 pure razor视图,以调用曲面控制器动作传递ID

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

我有一个razor视图,它只读取querystring值,将参数传递给一个类库,该类库返回事物的集合,因此

@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>