在剃须刀页面上,我有两种模型-技术人员和tech_skill。我正在从用户那里收集技能数据并使用它创建一个tech_skill记录,但是我不想让用户键入技术人员ID,而是希望从技术人员对象中获取该数据。
在cshtml.cs文件的OnGet事件中,我获得了技术人员ID。然后我在那里创建技术人员对象。然后在cshtml页面上,我知道我有技术人员,因为我可以显示他们的名字和姓氏。
我曾尝试将技术人员ID存储在一个隐藏字段“ Techs_Id”中,但是我可以找出如何在method =“ post”部分中使用该值的方法。
对不起,如果我没有很好地解释这一点。
@{
ViewData["Title"] = "Create";
}
<h2>Create Tech_Skill Record</h2>
<hr />
<div>
<h4>Technician</h4>
<h3>
</div>
@Html.Hidden("Techs_Id", Model.technician.TechnicianId)
<div class="row">
<div class="col-md-4">
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="tech_skill.Skill_Id" class="control-label"></label>
<input asp-for="tech_skill.Skill_Id" class="form-control" />
<span asp-validation-for="tech_skill.Skill_Id" class="text-danger"></span>
</div>
答案 0 :(得分:0)
对于Razor Pages:
如果我正确理解,您需要“以某种方式发送”技术人员ID,以向特定技术人员添加技术技能。在表单标签内部,您需要一个将数据发布到剃刀页面处理程序的按钮:
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="tech_skill.Skill_Id" class="control-label"></label>
<input asp-for="tech_skill.Skill_Id" class="form-control" />
<span asp-validation-for="tech_skill.Skill_Id" class="text-danger"></span>
</div>
<!-- and other code... -->
<button type="submit" asp-page="/writeYourPageNameHere" asp-route-id="@Model.technician.TechnicianId" >Save Skill</button>
</form>
您的post方法处理程序将如下所示:
public async Task<IActionResult> OnPostAsync(int id) //technicianId will be written in id
{
//you can use id here
return RedirectToPage("pageNameYouWantToRedirectTo");
}
当您按下按钮OnPostAsync
时,方法将被调用,您可以在此方法中做任何您想做的事情。
答案 1 :(得分:0)
非常感谢您的回复。它使我开始走上正确的道路(我是这项技术的新手)。当我终于完成我实际尝试做的事情时,我想到了以下解决方案:
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="tech_skill.Tech_Id" class="control-label"></label>
<select asp-for="tech_skill.Tech_Id" class="form-control">
<option value=@Model.technician.TechnicianId>@Html.DisplayFor(model => model.technician.TechnicianId)</option>
</select>
<span asp-validation-for="tech_skill.Tech_Id" class="text-danger"></span>
</div>
要使我的技术人员ID进入我的tech_skill模型,我只需使用一个选择,而只有一个选项是技术ID。很抱歉让您不得不猜测我想做什么。
欢呼
格雷格。