路由如果我有這樣一個ActionResult方法,以便:屬性與約束
public ActionResult AllSummaries(int? page, DateTime? yesterday)
相反的路線是這樣的:
http://serverName/projectName/controllerName/AllSummaries?yesterday=04/03/2017
我想它是:
http://serverName/projectName/controllerName/AllSummaries/04/03/2017
因此,在ActionResult的頂部,我如何添加一個約束,使日期時間只顯示格式爲MM/dd/yyyy
?
[Route("allsummaries/yesterday/{yesterday:}")]
public ActionResult AllSummaries(int? page, DateTime? yesterday)
我不需要驗證日期和日期是否爲1位或2位..它將始終爲2位數。
任何幫助表示讚賞。
UPDATE
現在得到404錯誤:
這裏是我使用的鏈接:
http://serverName/projectName/controllerName/allsummaries/yesterday/3/4/2017
這裏是我的動作:
[Route("controllerName/allsummaries/yesterday/{month?}/{day?}/{year?}")]
[ValidateInput(false)]
public ActionResult AllSummaries(int? page, int? day, int? month, int? year)
{
if (day.HasValue && month.HasValue && year.HasValue)
{
var yesterday = new DateTime(year.Value, month.Value, day.Value);
}
路線我生成的是從控制檯a pplication即是要通過Windows服務會自動發送郵件,所以我不能使用@Url.Action
...等等。我硬編碼,像這樣的鏈接:
mail.Body = mail.Body + "<div>" + "<p>" +
"http://serverName/projectName/controllerName/allsummaries/yesterday/" +
DateTime.Today.AddDays(-1).Day +
"/" + DateTime.Today.AddDays(-1).Month + "/" +
DateTime.Today.AddDays(-1).Year + "</p>" + "</div>";
請參閱我的更新 –
還有一些其他問題。 –
好吧,對不起,我再次更新..解釋是在更新中,但我仍然可以做字符串格式化 –