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