行のクリックはブラウザーで行われるため、元のモデルのどこかに既に存在しない限り、コントローラーまたはモデルから何にも依存することはできません。これを実装するには、非表示のID列をグリッドに追加し、レンダリングに使用するモデルを作成してから、クライアントイベントとハンドラーをグリッドとビューに追加します。利用できるさまざまなクライアントイベントのいくつかについては、クライアント側イベントの下のグリッドに提供されているサンプルを確認してください。
グリッドで、最初にId列を追加します(必要に応じて非表示にします)。
.Columns(columns =>
{
columns.Bound(o => o.Id).Hidden(true);
}
次に、ClientEventsを追加し、次のようにonRowSelectを接続します。
.ClientEvents(events =>
{
events.OnRowSelect("onRowSelected");
}
次に、このイベントを次のように処理する関数を追加します。
function onRowSelected(e) {
var id = e.row.cells[0].innerHTML;
window.location = "Something/Details/" + id;
}
アップデート
クライアントですべてを正しく行っているようです。問題は、アクションまたはバインディングの他の場所で発生する可能性があります。ただし、確かに、そのパスをたどる前に、 / Pedido / DetalhePedido / "+ idが実際にアラートとともに何であるかを確認してください。それを取得して、ブラウザーのURLに直接入力し、アクションを実行できるはずです。アクションが正しく定義されている限り、idと呼ばれるintを受け入れます。
それでも問題が解決しない場合は、自分の行動を確認する必要があります。投稿用にマークされていますか?Window.Locationの場合、投稿ではないため機能しません。名前付きIdおよび型intを受け入れる引数ですか?そうでない場合は、そうすべきですか?ルートを変更しましたか?変更した場合、URLは定義されたルートと一致しますか?