删除字符串字符后将字符串与字符串进行比较

compere string to string after removing string characters

我有一个用作 url 参数查询的字符串,我需要获取所有相关数据才能获得 "clean Url" 我已经使用助手删除了所有字符,但是我无法将它压缩到我的 Db 字符串更新代码现在它是 0 个结果`

查看:

<a href="@Url.Action("Index","schools",
    new { @venue =Html.ResolveSubjectForUrl( gig.Venue)})">@gig.Venue
</a> 

控制器:

public ActionResult Index(string venue)
{
    var testq = _context.LectureGigs.Where(v => v.Venue.StartsWith(venue));
    /just made the query shorter for clear code 
}

public static class UrlExtensions
{
    public static string ResolveSubjectForUrl(this HtmlHelper source, string subject)
    {
        return Regex.Replace(Regex.Replace(subject, "[^\w]", ""), "[-]{2,}", "");
    }
}

解决此问题的最简单方法是将 'Resolved' 字符串作为 venue.

的一部分存储在数据库中

例如:

class Venue
{
    public string Name { get; set; }
    public string Slug { get; set; }
}

如果将其存储在 table 中,类似于:

CREATE TABLE Venue
(
    [Name] nvarchar(512) NOT NULL,
    [Slug] nvarchar(512) NOT NULL PRIMARY KEY
)

然后找到该场地的演出变得非常简单:

_context.LectureGigs.Where(v => v.Venue.Slug.StartsWith(slug));

显然,当您保存 Venue 时,您需要使用 ResolveSubjectForUrl 中的值填充 Slug 值(您可以将其用作 string 扩展名或 static 方法没有 HtmlHelper 参数)