我传递了一个字符串值 farmName
从一个控制器传递到另一个控制器。
<a asp-action="Index" asp-controller="JFTreatment" asp-route-farmName="@item.Farm.Name">link</a>
我可以在我的索引视图中看到它已经成功通过。
我现在想显示的是 farmName
作为编辑视图的标题,但我不知道如何设置会话字符串的语法,也不知道如何显示它。
假设你的标题设置是使用 ViewData["Title"]
词典,设置在每个页面上。你可以做以下的事情来获得 farmName
从Url中获取。
选项1:直接从查询集合中获取查询值。
foreach(var query in HttpContext.Request.Query)
{
if(query.Key == "farmName")
{
ViewData["Title"] = query.Value;
}
}
选项2:以方法参数的形式获取途径数据(推荐)。
为了使这个选项有效,您的 Index
方法应该是这样的。
public IActionResult Index(string farmName, int? plotId = null){
ViewData["Title"] = farmName;
... Some more code
}
这里的路由属性是通过Action Parameter接收的... ...
想通了!我是用session string做的
我收到的网址是通过
public async Task<IActionResult> Index( string farmName){
HttpContext.Session.SetString("farmName", farmName);}
然后,只需设置添加参考
@using Microsoft.AspNetCore.Http
然后将标题用
ViewData["Title"] = @Context.Session.GetString("farmName");