c# - 在 ASP.NET MVC 应用程序中放置函数

标签 c# asp.net asp.net-mvc design-patterns asp.net-mvc-2

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

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

目前,我的 BookmarkList Controller 方法将 Bookmark 对象的列表传递给 View ,我在 View 中迭代该列表。由于 Bookmark 对象没有用于存储基本 URL 的属性(因为我正在即时计算它),所以我不能将它放在 Bookmark 对象中在将它们传递给 View 之前(无论如何它似乎都是错误的)。那么我应该调用我从 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 方法,而不是简单地连接字符串。

浏览器,

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

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

此外,您的 Url 是否存储为字符串?

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

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

相关文章:

c# - 在 MS Word 中使用正则表达式替换文本 - C#

html - Web 应用程序 aspx css 打印问题

javascript - 使用条件语句将值分配给依赖于另一个文本字段的文本字段

c# - DocuSign JWT 认证 : Unexpected PEM type

c# - 我可以将自定义 JsonSerializer 设置为 RestSharp RestClient

c# - edmx 计算列

asp.net - ASP和IIS : Can you have compile errors for only individual URLS?

asp.net - Sitecore:打开 HTML 缓存会阻止回发行为

asp.net - .NET 4.5 中的样式包和 CSS 中的图标

asp.net-mvc - Web Api 过滤器 - 检查装饰器是否存在