删除字符串后,将字符串转换为字符串

时间:2017-03-06 14:11:21

标签: c# asp.net-mvc linq html-helper

我有一个字符串,我用作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,}", "");
    }
}

1 个答案:

答案 0 :(得分:0)

解决此问题的最简单方法是存储您的“已解决”问题。数据库中的字符串,作为venue

的一部分

例如:

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

如果将其存储在类似于:

的表中
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参数)