使用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路由。
我还在互联网上搜索了许多小时。但对于这个非常简单的问题,我找不到很好的解决方案。 至少在我看来,这个问题非常简单:),但是我无法解决这个问题。
我希望周围有人可以解决这个问题。
答案 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/