从我的控制器我正在调用一个视图。根据控制器中的某些参数,生成视图中的某些部分。
然后在视图中,我有一个按钮,它将控制器调回来创建一个pdf。
pdf还必须显示某个部分 - 基于整数值。我无法做到这一点。
我的控制器调用视图:
public ActionResult ActionForSubForm5()
{
TempData["sform"] = 5;
return PartialView("_VoIPSubform");
}
控制器中有7种这样的方法,用不同的Tempdata参数调用视图。
稍后在一个完全不同的方法中调用pdf生成部分,我需要该值5.
rcpt = Methods.CreateVoIPFormPDF(
....
VoIPSubformId,
...
有没有办法可以存储这个值5供以后使用?
答案 0 :(得分:1)
您应该从具有创建pdf按钮的视图中发送生成PDF所需的值。
public ActionResult ActionForSubForm5()
{
TempData["sform"] = 5;
return PartialView("_VoIPSubform");
}
在partial中,将formId保存在隐藏变量中,以便在用户提交表单时,它将在HttpPost操作方法中可用。
@using (Html.BeginForm("PrintPdf", "Home"))
{
<input type="hidden" name="formId" value="@TempData["sform"]"/>
<input type="submit" value="Create PDF" />
}
隐藏字段的name
应与您的操作方法参数名称
[HttpPost]
public ActionResult PrintPdf(int formId)
{
// to do :Generate PDF from the formId
}
调用视图的控制器中有7种这样的方法 具有不同的Tempdata参数。
如果是7种不同的方法,但是所有方法都为PrintPdf方法设置了不同的formId,那么最好创建一个将formId值作为参数的单一操作方法
public ActionResult ActionForSubForm(int id)
{
TempData["sform"] = id;
return PartialView("_VoIPSubform");
}