これが可能かどうか知りたいです(そうあるべきだと思われます)
次のようなルートが必要です。
/events/{id}/addcomment
ここで、{id} は、コメントを追加するイベントを識別するために使用されるパラメーターです。/events/addcomment/{id} を簡単に実行できることは承知していますが、これはこのアクションをルーティングしたい方法ではないため、他の SO 投稿を見てこれまでに得たものです
global.asax ファイルにルートを登録します -
routes.MapRoute(
"AddComment",
"Events/{id}/AddComment",
new { controller = "Events", action = "AddComment", id = "" }
);
次に、イベントコントローラー内の私のアクション-
[ActionName("{id}/AddComment")]
public ActionResult AddComment(int id)
{
Event _event = db.Events.Find(id);
var auth = OAContext.LoginRedirect("Must be logged in to add a comment");
if (auth != null)
return auth;
else if (_event == null)
return HttpNotFound();
else
return View(_event);
}
私はこれを ActionName アノテーションの有無にかかわらず試しましたが、ここで何が間違っているのか完全にはわかりません。
後で、/events/{eventId}/comment/{commentId}/{action} などのルートを作成して、ユーザーがイベントからコメントを編集/削除できるようにする予定ですが、最初にこれをルーティングする方法を正確に把握する必要があります.
私がこれを尋ねている理由は、URL でアクションを実行するパラメーターの他のサンプルを見たことがないためです。おそらく私はこれを行うことができません。
私の質問:この URL 形式は可能ですか? もしそうなら、これをルートとコントローラーにコーディングする適切な方法は何ですか?