MVC发回umbraco

时间:2019-02-06 08:06:42

标签: c# asp.net-mvc-5 umbraco backend umbraco7

使用umbraco为网站访问者提供一种编辑表单的最佳方法是什么?

一个非常简单的示例是一个具有2个页面的应用程序(网站)。

第一页:国家/地区列表。

因此,在umbraco中,我使用名为“列表”的模板创建了一个文档类型 在访问页面时会调用一个Surface控制器。该控制器将获得国家/地区列表(例如,从对象列表中说)

public class Country 
{
    public Guid Id { get; set; }
    public string Name { get; set; }

    public Country(string name)
    {
        Id = new Guid(); //Or something likewise... whatever
        Name = name;
    }
}

List<Country> countries = new List<Country>();
countries.add(new Country("UK"));
countries.add(new Country("US"));
countries.add(new Country("France"));
countries.add(new Country("Belgium"));

表面控制器取回该对象并在其剃刀视图中呈现这些国家的列表,每个国家旁边都有一个名为“更改此国家”的按钮

回到Umbraco,我还有第二种文档类型,其模板称为“编辑” 这应该用于该国家/地区的某些编辑机制...

我也希望有这样的路由

http(s)://localhost:12345/Edit/2354

代替

http(s)://localhost:12345/Edit?id=2354

最好的做法是什么? 我已经尝试过使用表面控制器,但是我无法发回 我已经尝试过路由劫持,并完全劫持了MVC路由。

我还在互联网上搜索了许多小时。但对于这个非常简单的问题,我找不到很好的解决方案。 至少在我看来,这个问题非常简单:),但是我无法解决这个问题。

我希望周围有人可以解决这个问题。

2 个答案:

答案 0 :(得分:0)

看起来您不需要为此使用Surface控制器,只需使用标准的MVC结构,创建标准的Controller以及相应的View和Model。使用HttpGet ActionResult返回您的页面,然后通过传递国家/地区ID创建新的更新ActionResult以更新您的商品。请参阅此标准Microsoft文档以获取一些详细信息。 https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/getting-started

答案 1 :(得分:0)

并为您做了更多的研究,这是一个很好的示例,很好地说明了这一点,如果您不想选择我的第一选择,这也可能有助于您解决问题。 https://codeshare.co.uk/blog/how-to-create-a-contact-form-in-umbraco-using-mvc-and-c/