c# - 如何将 ID 从一个剃须刀页面传递到另一个具有多个选项卡的剃须刀页面
问题描述
我有一个剃须刀页面,其中包含多个选项卡中的多个表单。当我提交表单时,它将与另一个选项卡一起转到下一个选项卡。我想将两个 id 从第一种形式传递到第二种形式(即剃须刀页面)。这是代码。
这是用于提交第一个表单 StaffDetails.cshtml.cs 的函数
public async Task<IActionResult> OnPostInsertStaffDetailsAsync(StaffDetails StaffDetails)
{
ShowTypeOfEmployee = new SelectList(_context.TypeOfEmployees, "TypeOfEmployee", "TypeOfEmployee");
ShowEmploymentType = new SelectList(_context.EmploymentTypes, "EmploymentType", "EmploymentType");
DeptName = new SelectList(_context.Department.OrderBy(e => e.DeptName), "DeptName", "DeptName");
EmpCategories = new SelectList(_context.EmploymentCategory.OrderBy(e => e.EmpCategories), "EmpCategories", "EmpCategories");
EmpStatus = new SelectList(_context.EmploymentStatus.OrderBy(e => e.EmpStatus), "EmpStatus", "EmpStatus");
RegularOrTemporary = new SelectList(_context.RegTemp.OrderBy(e => e.RegularOrTemporary), "RegularOrTemporary", "RegularOrTemporary");
IncentivePlans = new SelectList(_context.IncentivePlan, "IncentivePlans", "IncentivePlans");
if (!ModelState.IsValid)
{
return Page();
}
else
{
await _context.StaffDetails.AddAsync(StaffDetails);
await _context.SaveChangesAsync();
int StaffID = StaffDetails.StaffID;
//HttpContext.Session.SetInt32("StaffID", StaffID);
//HttpContext.Session.SetString("EmpID", StaffDetails.EmpID);
TempData["EmpID"] = StaffDetails.EmpID;
TempData["StaffID"] = StaffID;
var foldername = StaffDetails.EmpID.ToString();
var DirectoryPath = Path.Combine(_env.WebRootPath, "Documents", "EmployeeAttachments", foldername);
if (!System.IO.Directory.Exists(DirectoryPath))
{
System.IO.Directory.CreateDirectory(DirectoryPath);
}
return new OkResult();
}
}
}
}
这是用于导航到下一个选项卡中的下一个表单的 ajax 函数。
function StaffDetailsCompleted(event) {
if (event.responseText != "") {
$("#StaffDetails").html(event.responseText);
} else {
alert("Staff Details Has Been Added Successfully");
$('a[href="#Biodata"]').tab('show');
}
}
第二种形式 Biodata.cshtml
@page
@model Contractor_HRMS.Pages.Staff.Onboarding.BioDataModel
@{
Layout = null;
}
<br />
<form asp-page-handler="InsertBioData" data-ajax="true" data-ajax-method="post" data-ajax-complete="BioDataCompleted">
<div class="row">
<div class="col-6">
<input asp-for="StaffBioData.StaffID" id="StaffID" type="hidden" value='@TempData["StaffID"]' />
<input asp-for="StaffBioData.EmpID" id="EmpId" type="hidden" value='@TempData["EmpID"]' />
<!-- First Name -->
<div class="form-group">
<label asp-for="StaffBioData.IdenEmpFname" class="control-label-staff"></label>
<input asp-for="StaffBioData.IdenEmpFname" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.IdenEmpFname" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Last Name -->
<div class="form-group">
<label asp-for="StaffBioData.IdenEmpLname" class="control-label-staff"></label>
<input asp-for="StaffBioData.IdenEmpLname" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.IdenEmpLname" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Address -->
<div class="form-group">
<label asp-for="StaffBioData.Address" class="control-label-staff"></label>
<input asp-for="StaffBioData.Address" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.Address" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Photo -->
<div class="form-group">
<label class="control-label-staff"><b>Photo</b></label>
<input type="file" asp-for="StaffPhoto" class="form-control-staff" multiple style="border:1px solid white;margin-right:20px" />
</div>
<!-- Gender -->
<div class="form-group">
<label asp-for="StaffBioData.Gender" class="control-label-staff"></label>
<select asp-for="StaffBioData.Gender" asp-items="Model.StaffGender" class="form-control-staff">
<option value="">Please Select</option>
</select><br />
<span asp-validation-for="StaffBioData.Gender" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Date of Birth -->
<div class="form-group">
<label asp-for="StaffBioData.Dob" class="control-label-staff"></label>
<input asp-for="StaffBioData.Dob" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.Dob" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Race -->
<div class="form-group">
<label asp-for="StaffBioData.Race" class="control-label-staff"></label>
<input asp-for="StaffBioData.Race" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.Race" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Religion -->
<div class="form-group">
<label asp-for="StaffBioData.Religion" class="control-label-staff"></label>
<select asp-for="StaffBioData.Religion" asp-items="Model.StaffReligion" class="form-control-staff">
<option value="">Please Select</option>
</select><br />
<span asp-validation-for="StaffBioData.Religion" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Nationality -->
<div class="form-group">
<label asp-for="StaffBioData.Nationality" class="control-label-staff"></label>
<input asp-for="StaffBioData.Nationality" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.Nationality" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Ethnicity -->
<div class="form-group">
<label asp-for="StaffBioData.Ethnicity" class="control-label-staff"></label>
<input asp-for="StaffBioData.Ethnicity" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.Ethnicity" class="text-danger" style="margin-left:210px;"></span>
</div>
<!-- Emergency Contact -->
<div class="form-group">
<label class="control-label-staff"><b>Emergency Contact:</b></label><br />
<!-- Emergency Contact Name-->
<label asp-for="StaffBioData.EmergencyContactName" class="control-label-staff" style="text-align:left;"></label>
<input asp-for="StaffBioData.EmergencyContactName" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.EmergencyContactName" class="text-danger" style="margin-left:210px;"></span>
<br /><br />
<!-- Emergency Contact No-->
<label asp-for="StaffBioData.EmergencyContactNo" class="control-label-staff" style="text-align:left;"></label>
<input asp-for="StaffBioData.EmergencyContactNo" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.EmergencyContactNo" class="text-danger" style="margin-left:210px;"></span>
<br /><br />
<!-- Emergency Contact Relation-->
<label asp-for="StaffBioData.EmergencyContactRelation" class="control-label-staff" style="text-align:left;"></label>
<input asp-for="StaffBioData.EmergencyContactRelation" class="form-control-staff" /><br />
<span asp-validation-for="StaffBioData.EmergencyContactRelation" class="text-danger" style="margin-left:210px;"></span>
<br /><br />
</div>
<div class="form-group" style="display:none;">
<label asp-for="StaffBioData.LastModifiedBy" class="control-label"></label>
<input asp-for="StaffBioData.LastModifiedBy" class="form-control" value="jteena" />
<span asp-validation-for="StaffBioData.LastModifiedBy" class="text-danger"></span>
</div>
<div class="form-group" style="display:none;">
<label asp-for="StaffBioData.LastModifiedTimestamp" class="control-label"></label>
<input asp-for="StaffBioData.LastModifiedTimestamp" class="form-control" value="@DateTime.Now" />
<span asp-validation-for="StaffBioData.LastModifiedTimestamp" class="text-danger"></span>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-success" style="margin-left:550px;">Save</button>
</div>
</div>
</form>
<partial name="_ValidationScriptsPartial" />
这里发生的事情是我无法使用 TempData 为隐藏变量 STaffID 和 EmpID 设置值。我做错了什么吗。任何帮助将不胜感激。
解决方案
由于在加载详情页时,每个选项卡下的内容已经被填满,所以稍后所做的一些更改将不会体现出来。您可以在已完成的功能中再次请求下一页以刷新它。
function StaffDetailsCompleted(event) {
if (event.responseText != "") {
$("#StaffDetails").html(event.responseText);
} else {
alert("Staff Details Has Been Added Successfully");
$.ajax({
url: "/Staff/Onboarding/Biodata",
type: "get",
success: function (result) {
$("#Biodata").html(result);
$('a[href="#Biodata"]').tab('show');
}
})
}
}
推荐阅读
- ios - 如何在 iOS swift 中实现评论和回复系统
- mysql - 如何检查更新mysql表是否成功?
- datetime - 如何使用 Chrono 从 NaiveDate 转到特定的 TimeZone?
- haskell - 使 GHCi 以十进制形式打印。
- r - R闪亮的数字输入步骤和最小值交互
- c# - 从 LINQ 填充的 DataGrid 中提取 SelectedItem 事件中的数据
- r - 在 R 中使用带状图有条件地绘制 pch
- java - 在这里调用实例方法或声明变量更好吗?
- android - 调整图像宽度以匹配父级并根据 ImageView 中的纵横比调整高度
- ios - 尝试在表格视图中添加虚线边框分隔符