ASP.NET 核心获取路由数据值到输入框
ASP.NET core get route data values into input box
我有一个 razor 视图,其中显示了一个人的信息,它的路线是 https://localhost:PORT/Pesron/Details/E-12345
。
我想使用另一个控制器为所述人创建一个配置文件,相应的 link 将是 https://localhost:PORT/Profile/Create/E-12345
。
该页面可以正常打开,但我想获取值 E-123456
,它是此人的 ID,显然从一个到另一个,进入 Create
中的(禁用)输入框,因此,当我填写其他信息并按下提交时,将创建一个新的配置文件,我正在使用 MVC 控制器进行操作,但不介意也使用 Web API。
我如何在 Person
的 Details
视图中打开 Create
。
<a asp-action="Create" asp-controller="Profile" asp-route-id="@Model.ID">Create</a>
我的 2 Create
个操作方法。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(string MRN, [Bind("Id,Dep_Id,Check_In,Check_Out")] Profile profile)
{
ViewData["ID"] = MRN;
if (ModelState.IsValid)
{
_context.Add(profile);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(profile);
}
public IActionResult Create(string MRN)
{
ViewData["ID"] = MRN;
return View();
}
可能是我发送的值不是主键,我把它隐藏起来自动递增了。
你可以使用ViewData
。下面是一个例子。
查看:
<a asp-action="Create" asp-controller="Profile" asp-route-id="@Model.ID">Create</a>
创建操作:
public IActionResult Create(string id)
{
ViewData["ID"] = id;
return View();
}
创建视图:
<input value="@ViewBag.ID" disabled="disabled"/>
Post 创建方法:
[HttpPost]
public IActionResult Create(Profile profile, string id)
{
//.....
return RedirectToAction("actionname","Controllername");
}
我有一个 razor 视图,其中显示了一个人的信息,它的路线是 https://localhost:PORT/Pesron/Details/E-12345
。
我想使用另一个控制器为所述人创建一个配置文件,相应的 link 将是 https://localhost:PORT/Profile/Create/E-12345
。
该页面可以正常打开,但我想获取值 E-123456
,它是此人的 ID,显然从一个到另一个,进入 Create
中的(禁用)输入框,因此,当我填写其他信息并按下提交时,将创建一个新的配置文件,我正在使用 MVC 控制器进行操作,但不介意也使用 Web API。
我如何在 Person
的 Details
视图中打开 Create
。
<a asp-action="Create" asp-controller="Profile" asp-route-id="@Model.ID">Create</a>
我的 2 Create
个操作方法。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(string MRN, [Bind("Id,Dep_Id,Check_In,Check_Out")] Profile profile)
{
ViewData["ID"] = MRN;
if (ModelState.IsValid)
{
_context.Add(profile);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(profile);
}
public IActionResult Create(string MRN)
{
ViewData["ID"] = MRN;
return View();
}
可能是我发送的值不是主键,我把它隐藏起来自动递增了。
你可以使用ViewData
。下面是一个例子。
查看:
<a asp-action="Create" asp-controller="Profile" asp-route-id="@Model.ID">Create</a>
创建操作:
public IActionResult Create(string id)
{
ViewData["ID"] = id;
return View();
}
创建视图:
<input value="@ViewBag.ID" disabled="disabled"/>
Post 创建方法:
[HttpPost]
public IActionResult Create(Profile profile, string id)
{
//.....
return RedirectToAction("actionname","Controllername");
}