【问题标题】:MVC Posting back umbracoMVC Posting back umbraco
【发布时间】:2019-02-06 08:06:42
【问题描述】:

使用 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

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

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

我希望有人能解决这个问题。

【问题讨论】:

  • 我不同意另一张海报,即在这种情况下您不需要表面控制器,但请先发布您的控制器代码并编辑您的模型,因为我不确定您的模型到底是什么或什么是你得到的回应。

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


【解决方案1】:

看起来你不需要为此使用Surface控制器,只需使用标准的MVC结构,创建一个标准的Controller,以及你对应的View和Model。使用 HttpGet ActionResult 返回您的页面,然后通过传递 Country Id 创建一个新的更新 ActionResult 来更新您的项目。有关详细信息,请参阅此标准 Microsoft 文档。 https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/getting-started

【讨论】:

  • 感谢您的回答,但我当然需要保留 Umbraco 文档类型的内容。该页面上还有其他内容。
  • 我仍然会以正常方式执行此操作,因为此页面不会被多个内容页面使用(据我所知),如果您想使用标准的 ASP.NET MVC 方法,然后您可以简单地将 Umbraco 内容数据作为 IPublishedContent 获取并填充您的视图模型,然后在您的视图上使用它并以标准方式执行您的 CRUD 操作。这是执行此操作的代码示例: var umbracoHelper = new UmbracoHelper(UmbracoContext.Current); IPublishedContent 内容 = umbracoHelper.TypedContent(123);
  • 另一种方法是使用 PetaPoco,请参阅我的博客或查看替代网址,希望对您有所帮助。 nurhak-kaya.blogspot.com/2015/05/…creativewebspecialist.co.uk/2013/07/16/…
【解决方案2】:

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

【讨论】:

  • 我确实看过这些例子。这是一个非常好的博客 codeshare.co.uk 但它仍然缺乏我正在寻找的东西。我以不同的方式到达那里,如果我把所有东西都整理好了,我稍后会发布一个示例作为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-28
  • 2011-05-23
  • 2010-12-21
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
相关资源
最近更新 更多