如何保留GET ActionResult中的参数值以在POST ActionResult中将其重复使用

本文关键字:ActionResult POST 参数 何保留 保留 GET | 更新日期: 2023-09-27 18:21:50

我正在向GET ActionResult发送参数,如下所示:

public ActionResult MyFormLetter(string studentName, string teacherName, string courseName, string appointmentDate)
{    
    // Do stuff here;
}

单击调用POST ActionResult的表单按钮后,这些值就超出了作用域。我如何才能保留GET ActionResult中的值以在Post ActionResult中将其重用?

谢谢你的帮助!

如何保留GET ActionResult中的参数值以在POST ActionResult中将其重复使用

您应该为此使用ViewModel以及强类型视图。像这样的东西会起作用:

public class StudentInformation
{
    public string StudentName { get; set; }
    public string TeacherName { get; set; }
    public string CourseName { get; set; }
    public string AppointmentDate { get; set; }
}

您的操作方法如下所示:

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代码只显示了必要的元素,以显示如何在模型中保存数据以进行模型绑定

您有强类型视图吗?你的观点应该有一个模型,它包含正确(学生名、教师名等)的价值观

然后在Post Action上,它可以接受同一类的参数,模型将自动从表单变量中获取值(只要可能,它将自动将值与模型的属性匹配)。

您可以将值放在隐藏字段中,以便将它们发布到POST操作中,然后可以将它们绑定到POST方法的ActionResult中。