如何解决属性值在 Razor Pages 中重置 OnPost
我正在尝试为我的 OnPost 方法保留我的属性值。当我从最后一页更改为当前页面时,我在 OnGet 方法中设置了值。这是重定向到包含我的属性的页面的按钮的 HTML:
<a class="btn" type="button" asp-page="CreateDate" asp-route-dateString="@Model.model.StartDate.AddDays(i).ToString("yyyy-MM-dd")"><i class="fa fa-plus-square"></i></a>
这是 OnGet 方法:
[BindProperty]
public DateTime eventDate { get; set; }
public void OnGet(string dateString)
{
var stringToDate = DateTime.Parse(dateString);
eventDate = stringToDate;
}
这是 OnPost:
public IActionResult OnPost()
{
Date date = new Date();
date.Date1 = eventDate;
date.Title = Request.Form["Title"];
date.Description = Request.Form["Description"];
dateService.AddDate(date,userID);
return RedirectToPage("Calendar");
}
最后是 OnPost 方法的 HTML:
<div>
<h5 class="pageTitle">Udfyld formular for at oprette et event for denne dato: @Model.eventDate.ToString("D")</h5>
<form method="post">
Navn på event:
<br />
<input name="Title" type="text" class="form-control input-lg" required autofocus />
<br />
Beskrivelse:
<br />
<input name="Description" type="text" class="form-control input-lg" required autofocus />
<br />
<input type="submit" value="Opret Event" class="btn btn-primary">
</form>
我还是个新手,所以我只是(希望)寻找一个简单的答案。谢谢!
解决方法
当您在 OnPost 方法中重定向到 Calendar 页面时,您将转到 Calendar 页面,因此您可以将属性传递给 Calendar 页面并将属性保留在 Calendar PageModel 中。
OnPost 方法:
public IActionResult OnPost()
{
Date date = new Date();
date.Date1 = eventDate;
date.Title = Request.Form["Title"];
date.Description = Request.Form["Description"];
dateService.AddDate(date,userID);
return RedirectToPage("Calendar",date);
}
Calendar.cshtml.cs:
public class CalendarModel : PageModel
{
[BindProperty]
public Date date { get; set; }
public void OnGet(Date Date)
{
date = Date;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。