我有一个我用作URL参数s查询的字符串,我需要获取所有相关的数据,以获取"清洁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,}", "");
}
}
解决此问题的最简单方法是将您的'已解决'字符串存储在数据库中,作为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
参数)