2つの属性は、コントローラのために必要とされます。ただし、そのうちの1つ(datetime
)はnullになります。
コントローラーが2つの属性が受け取ることができるように
新しいルーティングが組み込まれたルーティング:
app.UseMvc(routes =>
{
routes.MapRoute(
"RequestHistorial",
"HechosLiquidadors/Details/{id:int}/{date:datetime}",
defaults: new { controller = "HechosLiquidadors", action = "Details" });
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
datetime
パラメータは、フォーマット制限か何かを持っていません。
データが
送信される方法このパラメータを送信する図である。
<table class="table table-bordered table-hover table-striped" id="LiquidacionesList">
<thead>
<tr>
{...}
<th>Resultados</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
{...}
<td>
<div class="btn-group">
<a asp-action="Details" asp-route-id="@item.StoreID"
asp-route-date="@item.FechaLFinLiq"
class="btn btn-default">Consultar</a>
</div>
</td>
</tr>
このテーブルモデルの各要素スルーれる反復のforeachで構成されボタンは必要な属性を受け取り、送信されたasp-route-id/dateを使用します。注:テーブルはうまく構築されています。すべての目的のデータが表示されます。私は日付がために起こっていると仮定しdate=21%2F11%2F2017%200%3A00%3A00
:この部分については
http://localhost:60288/HechosLiquidadors/Details/13?date=21%2F11%2F2017%200%3A00%3A00
:
ボタンは、これをクリックすると、結果
が示されているWebアドレスですコントローラ。しかし、ときに私はこれを実行します。
public async Task<IActionResult> Details(int? id, DateTime date)
{
return Content(id + "/" + date);
}
結果は次のとおりです。私はコントローラに渡している日付の書式設定に問題があると考えてい11/01/01/0001 0:00:00
?私は運がない答えを探していました。前もって感謝します!
UPDATE
問題は、Getメソッドは、この日付にする方法であるように思えます。 Getメソッドは、それが与えられた別のフォーマットを期待しているので、日付をnullとして宣言しているようです。
更新を継続します。