我在一个基于ASP.NET MVC的应用程序中工作,遇到这个问题时,当我在方法中执行RedirectToAction时,它会更改ControllerBase类的Request属性中的DateTime格式。
例如:
public class MyController:Controller{
public ActionResult MyController(){
return RedirectToAction("MyAction","MyController",{Fecha=DateTime.Now});
}
public ActionResult MyAction(DateTime date){
ModelPrueba model = new ModelPrueba(){Fecha=date};
return View(model);
}
}
当我调用MyController方法时,Request.Params["Fecha"]是,例如:2021年12月30日(dd/MM/yyyy(。
但是在RedirectToAction之后并且它正在执行MyAction方法,Request.Params["Fecha"]具有类似的值12/30/2021(MM/dd/yyyy(
是否有人知道是什么原因导致了这种格式的更改,以及是否可以不更改格式?
我已经尝试过DateTime.ParseExact,但它也不起作用。
这就像RedirectToAction正在用另一种DateTime格式生成类ControllerBase的Request属性的QueryString。
您可以使用string类来防止这些类型错误。
public class MyController:Controller{
public ActionResult MyController(){
return RedirectToAction("MyAction","MyController",{ Fecha = DateTime.Now.ToString("dd/MM/yyyy")});
}
public ActionResult MyAction(string date){
ModelPrueba model = new ModelPrueba(){ Fecha = DateTime.ParseExact(date, "dd/MM/yyyy", new CultureInfo("tr-TR")) };
return View(model);
}
}