出于教育目的,我正在构建一个克隆社交书签服务(类似于 reddit)。在列表中的每个“书签”下,我想显示源 URL 的 基域 (而不是完整 URL。

我已经在 SO 上找到了一些关于如何执行此操作的线程,因此我已经继续创建了一个类来抽象功能,但是我不确定应该在哪里实际调用该方法。

目前我有我的 BookmarkList Controller 方法将 Bookmark 对象列表传递给 View ,我在那里迭代列表。由于 Bookmark 对象没有用于存储基本 URL 的属性(因为我正在即时计算它),因此在将它们传递给 View 之前无法将其放入 Bookmark 对象中(无论如何它似乎是错误的)。那么我应该调用我从 View 本身创建的 GetDomainFromUrl 方法吗?出于某种原因,这也不合适。

我不确定如何在不破坏 MVC 约定的情况下适应此功能。

谢谢。

最佳答案

我会将它添加到 Bookmark 类。可以计算属性,以下是来自 msdn ( MSDN source ) 的 asp.net mvc 教程中的示例:

    public string LastName { get; set; }
    public string FirstMidName { get; set; }

    public string FullName
    {
        get
        {
            return LastName + ", " + FirstMidName;
        }
    }

您可以在此处调用 GetDomainFromUrl 方法,而不是简单地连接字符串。

IE,
public string BaseUrl
{
    get
    {
        return GetDomainFromUrl(this.Url);
    }
}

请注意,没有定义 set 方法,因为您可以/将要设置 Url 属性。

另外,您的网址是否存储为字符串?

如果您使用的是 URI class ,则可以只使用 this.FullUrl.Host,假设您文章的 url 是在名为 FullUrl 的属性中定义的。(还假设这不会破坏此任务的重点,因为您说这是为学校.)

关于c# - 在 ASP.NET MVC 应用程序中放置函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12398268/

10-10 23:37