C# 如何获取url?
我需要返回类似于C# 如何获取url?,c#,.net,C#,.net,我需要返回类似于/cat/prigotuvanya yizhi/dukhovi shafi/的Url,其中prigotuvanya yizhi是类别,而dukhovi shafi是子类别。但我不明白,怎么做 public class CmsCoreDbContext : CmsDbContextBase { public DbSet<CmsLiteralGroup> CmsLiteralGroups { get; set; } } public void Configure
/cat/prigotuvanya yizhi/dukhovi shafi/
的Url,其中prigotuvanya yizhi
是类别,而dukhovi shafi
是子类别。但我不明白,怎么做
public class CmsCoreDbContext : CmsDbContextBase
{
public DbSet<CmsLiteralGroup> CmsLiteralGroups { get; set; }
}
public void Configure(IApplicationBuilder application, IHostingEnvironment env)
{
application
.UseMvc(routeBuilder =>
{
routeBuilder.LocalizeRoutes(r =>
{
r.MapRoute("category", "cat/{category}/{subCategory}", new { Controller = "Category", Action = "Index"});
});
});
}
public async Task<ProductComparsionVM> GetProductComparisonByListId(int listId)
{
var comparsionList = _dbContext.ProductsComparsion.Include(z => z.ProductsToCompare).FirstOrDefault(z => z.Id == listId);
var category = _dbContext.Categories.FirstOrDefault(z => z.Id == comparsionList.CategoryId);
var literals = _dbContextCore.CmsLiteralGroups.AsNoTracking();
return new ProductComparsionVM
{
// I need to get url here somehow
ProductGroupUrl = "/cat/" + //"prigotuvannya-yizhi/" + "dukhovi-shafi/",
literals.Where(z => z.Code.ToLower() == id)
};
}
公共类CmsCoreDbContext:CmsDbContextBase
{
公共DbSet cmsliteralgroup{get;set;}
}
公共void配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
应用
.UseMvc(routeBuilder=>
{
routeBuilder.LocalizeZeroutes(r=>
{
r、 MapRoute(“类别”、“cat/{category}/{subCategory}”、新的{Controller=“category”、Action=“Index”});
});
});
}
公共异步任务GetProductComparisonByList ID(int listId)
{
var comparisonList=_dbContext.productsComparison.Include(z=>z.ProductsToCompare).FirstOrDefault(z=>z.Id==listId);
var category=_dbContext.Categories.FirstOrDefault(z=>z.Id==comparisonList.CategoryId);
var literals=_dbContextCore.CmsLiteralGroups.AsNoTracking();
返回新的ProductComparationVM
{
//我需要在这里找到网址
ProductGroupUrl=“/cat/”+/“Prigotuvanya yizhi/”+“dukhovi shafi/”,
其中(z=>z.Code.ToLower()==id)
};
}
文字量
cmsliteralgroup
包含我在url中使用的所有代码。我需要设法得到它
String.Format是您的朋友,因为它允许您使用占位符完整地写出URL,并通过数组传递这些值 比如说
string result2 = String.Format("Temperature on {0:d}:\n{1,11}: {2} degrees (hi)\n{3,11}: {4} degrees (lo)", object[] { date1, hiTime, hiTemp, loTime, loTemp });
有关更多详细信息,请参见此处的Microsoft官方文档如果我正确阅读了您的问题,您希望避免字符串操纵,并安全地使用url编码 <> > >强>如果您要< <强> >,请考虑使用<代码> URIHelp.Bu建dReals<代码> > <代码>微软.ASPNETCyr.http.Exp>/COD> 看 同样,假设我们需要构建一个相对url,您可以执行以下操作
var category = "prigotuvannya-yizhi";
var subCategory = "dukhovi-shafi";
var id = 42;
var result =
new[] { category, subCategory, id.ToString() }
.Aggregate("/", (acc, x) => UriHelper.BuildRelative(acc, "/" + x));
开放性问题:
包含哪些内容?看起来它是一个对象,所以您必须将其投影到标量才能放入urlliterals
类别控制器上定义ActionMethod
[HttpGet("cat/{category}/{subCategory}", Name="GetProduct")]
public string[] SearchByProducts(string category,string subcategory)
{
return new[]
{
$"Category: {category}, Subcategory: {subcategory}"
};
}
使用returnUrl.Link(“GetProduct”,新的{yourCategoryString,yourSubcategoryString}
要返回新的url链接嗨@Dima,你能帮我更好地理解这个问题吗?你在挣扎什么?你想避免字符串连接并使用对象模型来构建url,对吗?@ironstone13是的。我不需要字符串,我需要输入值:类别名称和子类别。它可以是不同的“我们不知道文字包含什么,我现在不确定这是不是应该回答的。”贾米克补充了关于literals@ironstone13几乎可以肯定,但我不是一个读心术的人,所以我不知道如何让这些属性来回答这个问题。