如何从umbraco的客户控制器,模型中获取数据?

时间:2016-02-15 13:27:24

标签: umbraco umbraco7 umbraco6

您好我开始使用umbraco CMS可以任何人告诉我如何从模型到控制器显示内容并将数据返回到相应的视图,想要做这样的事情: -

ContactViewModel.cs

public int id { get; set; }
public string Name { get; set; }
public string address { get; set; }
public string Email { get; set; }
public string phone { get; set; }

ContactController.cs

var result = new ContactViewModel()
             {
                 id = 1,
                 address = "ghivto",
                 Email = "nimesh@gmail.com",
                 Name = "Nimesh khatri",
                 phone = "9898989898"
             };
return View("contactsDemo",result);

如何将以上数据列入特定视图..?我已经尝试了#34; https://www.youtube.com/watch?v=sDQwu_DzYyc"但是我还是没有......任何人都可以详细说明......提前谢谢......

2 个答案:

答案 0 :(得分:1)

SurfaceController公开一个类似于你在标准MVC中使用的控制器,并且还可以访问Umbraco助手。

public MyController : SurfaceController {
   [ChildActionOnly]
   public PartialViewResult MyAction(SomeObject data)
   {
       var result = new ContactViewModel()
             {
                 id = 1,
                 address = "ghivto",
                 Email = "nimesh@gmail.com",
                 Name = "Nimesh khatri",
                 phone = "9898989898"
             };
        return View("~/Views/PartialViews/contactsDemo.cshtml",result);
   }
}

您可以使用以下方式从模板的剃刀视图或宏部分访问此数据:

@Html.Action("MyAction","MyController", new { data = new { Test = "I am data" } })

注意:数据传递可以是任何东西,从单个字符串到完整对象,它绑定到操作中的变量。

与MVC一样,有几种方法可以访问部分视图文件。上面的例子有一个"绝对" path,您还可以将视图文件夹结构与控制器的名称以及视图名称匹配到操作名称。 (MyAction.cshtml)。

答案 1 :(得分:0)

如果您想在Umbraco中执行此操作,并且仍然可以访问Umbraco诱惑系统等,则需要使用SurfaceController。这是一个继承了所有有用的Umbraco Stuff的控制器。

基本上,您可以创建ViewModel,然后使用Surface Controller来处理所有操作(渲染,处理等)。然后,您可以在Umbraco View上为联系页面调用该Surface Controller(或者您想要显示的页面)。

您链接的视频似乎已经涵盖了如何执行此操作,但您可以在此处找到与您的示例非常相似的示例:http://creativewebspecialist.co.uk/2013/07/22/umbraco-mvc-what-on-earth-is-a-surface-controller/