asp.net 核心在地址栏上显示正确的 url
asp.net core showing correct url on address bar
这是我的控制器代码
public async Task<IActionResult> MyView_001(long id = null)
{
if(id != null)
{
ViewData["DataValue"] = id;
return View("MyView_002");
}
return View();
}
public async Task<IActionResult> MyView_002()
{
return View();
}
如您所见,我有两个视图 (MyView_001,MyView_002) ,如果 id
不为 null ,首先我会调用 MyView_001?id=1
,我要returnMyView_002
。目前为止一切正常,但问题是地址栏上显示 url。目前显示 MyView_001?id=1
甚至 MyView_002
。
我只想在 url.
中显示 MyView_002
我该如何解决?
更新
而且我还想在 MyView_002
.
中使用 ViewData["DataValue"]
不是直接return查看,可以使用RedirectToAction
.
public async Task<IActionResult> MyView_001(long id)
{
if(id != 0)
{
TempData["DataValue"] = id.ToString();
return RedirectToAction("MyView_002");
}
return View();
}
更新:
使用session进行持久化:
控制器
public async Task<IActionResult> MyView_001(long id = 0)
{
if (id != 0)
{
HttpContext.Session.SetString("Id", id.ToString());
return RedirectToAction("MyView_002");
}
return View();
}
public async Task<IActionResult> MyView_002()
{
var id = Convert.ToInt64(HttpContext.Session.GetString("Id"));
return View(id);
}
MyView_002.cshtml:
@model long
<h1>MyView_002</h1>
@Model
在 Startup.cs 中配置会话:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSession();
...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseSession();
...
}
这是我的控制器代码
public async Task<IActionResult> MyView_001(long id = null)
{
if(id != null)
{
ViewData["DataValue"] = id;
return View("MyView_002");
}
return View();
}
public async Task<IActionResult> MyView_002()
{
return View();
}
如您所见,我有两个视图 (MyView_001,MyView_002) ,如果 id
不为 null ,首先我会调用 MyView_001?id=1
,我要returnMyView_002
。目前为止一切正常,但问题是地址栏上显示 url。目前显示 MyView_001?id=1
甚至 MyView_002
。
我只想在 url.
中显示 MyView_002
我该如何解决?
更新
而且我还想在 MyView_002
.
ViewData["DataValue"]
不是直接return查看,可以使用RedirectToAction
.
public async Task<IActionResult> MyView_001(long id)
{
if(id != 0)
{
TempData["DataValue"] = id.ToString();
return RedirectToAction("MyView_002");
}
return View();
}
更新:
使用session进行持久化:
控制器
public async Task<IActionResult> MyView_001(long id = 0)
{
if (id != 0)
{
HttpContext.Session.SetString("Id", id.ToString());
return RedirectToAction("MyView_002");
}
return View();
}
public async Task<IActionResult> MyView_002()
{
var id = Convert.ToInt64(HttpContext.Session.GetString("Id"));
return View(id);
}
MyView_002.cshtml:
@model long
<h1>MyView_002</h1>
@Model
在 Startup.cs 中配置会话:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSession();
...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseSession();
...
}