我正在向GET ActionResult发送参数:
public ActionResult MyFormLetter(string studentName, string teacherName, string courseName, string appointmentDate)
{
// Do stuff here;
}
单击调用POST ActionResult的表单按钮后,这些值超出范围。我可以保留GET ActionResult中的值,以便在Post ActionResult中重用吗?
感谢您的帮助!
答案 0 :(得分:2)
你有一个强类型的视图吗?你的视图应该有一个模型,其中包含Get right(studentname,teachername ......等)的值
然后在Post Action上,它可以接受同一个类的参数,模型将自动从表单变量中获取值(它会尽可能自动地将值与模型的属性匹配)。
答案 1 :(得分:2)
您应该使用ViewModel以及强类型视图。像这样的东西会起作用:
public class StudentInformation
{
public string StudentName { get; set; }
public string TeacherName { get; set; }
public string CourseName { get; set; }
public string AppointmentDate { get; set; }
}
您的Action方法如下所示:
public ActionResult MyFormLetter()
{
return View();
}
[HttpPost]
public ActionResult MyFormLetter(StudentInformation studentInformation)
{
// do what you like with the data passed through submitting the form
// you will have access to the form data like this:
// to get student's name: studentInformation.StudentName
// to get teacher's name: studentInformation.TeacherName
// to get course's name: studentInformation.CourseName
// to get appointment date string: studentInformation.AppointmentDate
}
一点点查看代码:
@model StudentInformation
@using(Html.BeginForm())
{
@Html.TextBoxFor(m => m.StudentName)
@Html.TextBoxFor(m => m.TeacherName)
@Html.TextBoxFor(m => m.CourseName)
@Html.TextBoxFor(m => m.AppointmentDate)
<input type="submit" value="Submit Form" />
}
当您从提交的POST到达Action方法时,您将可以访问输入到表单视图中的所有数据。
免责声明:View代码仅显示必要的元素,以显示如何在模型绑定的模型中保存数据。
答案 2 :(得分:0)
您可以将这些值放在隐藏字段中,以便将它们发布到您的POST操作中,然后您可以将它们捆绑在POST方法的ActionResult
中。