Jquery 如何在mvc razor视图中跨选项卡传递id
我有一个具有多个引导选项卡的mvc视图。在第一个选项卡中单击save后,将在数据库中生成一个条目,并生成一个id(数据库中的标识键)。当我单击下一个选项卡(我使用jQuery单击事件)时,我希望传递从第一个选项卡生成的idJquery 如何在mvc razor视图中跨选项卡传递id,jquery,asp.net-mvc,asp.net-mvc-4,asp.net-ajax,Jquery,Asp.net Mvc,Asp.net Mvc 4,Asp.net Ajax,我有一个具有多个引导选项卡的mvc视图。在第一个选项卡中单击save后,将在数据库中生成一个条目,并生成一个id(数据库中的标识键)。当我单击下一个选项卡(我使用jQuery单击事件)时,我希望传递从第一个选项卡生成的id @model MyProject.ViewModels.MydatabaseMyVM <div class="container"> <div class="row"> <h2> Create Staff&
@model MyProject.ViewModels.MydatabaseMyVM
<div class="container">
<div class="row">
<h2>
Create Staff</h2>
</div>
@using (Html.BeginForm())
{
<ul id="datatabs" class="nav nav-tabs nav-justified">
<li class="active"><a data-toggle="tab" href="#details" id="TabDetailsLink">Personal
Details</a></li>
<li><a data-toggle="tab" href="#Tab1" id="TabTab1Link">Tab1</a></li>
<li><a data-toggle="tab" href="#Tab2" id="TabTab2Link">Tab2</a></li>
<li><a data-toggle="tab" href="#Tab3" id="TabTab3Link">Tab3</a></li>
</ul>
var data = $form.serialize(); $.post(url, data).done(function () {}.
@model MyProject.ViewModels.MydatabaseMyVM
创建工作人员
@使用(Html.BeginForm())
{
var data=$form.serialize();$.post(url,data).done(函数(){})。
在我的第一个选项卡中,我有来自学生模型的字段,有一个id将从数据库中生成。保存该id后,我希望保留该id,当我单击另一个选项卡时,该id应通过ajax调用传递给操作。
我使用的是MVC4Razor视图和引导选项卡。
是否有人可以指导我如何将数据库中生成的id从一个选项卡传递到另一个选项卡。EF用于访问数据库如果我理解正确,在第一个选项卡上,当您单击“保存”时,您将使用ajax将表单发布到StaffCreate(),即返回视图(我不太清楚为什么要返回视图,但我假设它在其他地方使用) 如果在发布到StaffCreate()时,无法将staffId保存在会话中 然后,当您单击第二个选项卡时,在jQueryClick事件中,首先对一个操作执行一个get请求,该操作只将人员Id作为Json结果返回,一旦您获得了Id,就可以随心所欲地使用它 因此,伪代码类似于:
// your current action
[HttpPost]
public ActionResult StaffCreate(MydatabaseMyVMstaffvm)
{
// previous omitted for simplicity
Staff objStaff = MyService.StaffCreate(staffvm.Staff);
Session["StaffId"] = objStaff.StaffID;
// reset omitted for simplicity
}
采取行动以获取固定资产
public ActionResult GetCreatedStaffId()
{
return Json(Session["StaffId"], JsonRequestBehavior.AllowGet)
}
// your tab click event
$("").click(function{
$.getJSON( "@Url.Action("GetCreatedStaffId")", function( data ) {
// data is your StaffId
}
})
方法2 Psuedo代码存储隐藏输入中的StaffId 在StaffCreate()中返回的视图中,执行以下操作
<input type="hidden" id="hidStaffId" value="@Model.Staff.StaffID" />
您是如何在第一个选项卡上保存数据的?我的意思是您是在发布表单还是通过ajax发布的?另外,您在访问数据库时使用的是什么技术?1.ajax调用2.EF进行db访问。是否有任何方法可以使用out session variable?我可以想到两种方法:1.返回视图时,创建一个隐藏的输入,并保存它e id,然后单击tab时,使用jquery从隐藏的输入中获取值-但这可能有缺陷,因为任何人都可以更改隐藏的输入值。2.当ajax调用操作时,而不是从会话中读取,使用您为员工提供的信息重新查询db。您能给我看一个创建隐藏输入的示例代码吗..加载视图时不会生成id。让我检查视图中是否存在ir
// your tab click event
$("").click(function{
var staffId = $("#hidStaffId").val();
})