0

私はCodeIgniterに精通しているので、初心者ではありませんが、C#/。NETを使用してMVCに移行すると、確かにそのように感じます。以下のコントローラーを呼び出すと、URLのスラッシュ区切りの引数がコントローラーの入力パラメーターに適切にバインドされると思います。例:http://localhost/Download/51fileID=51を指定する予定です。ただし、これを実行すると、コントローラーが呼び出されたときにfileIDがnullになります。いずれかのHttpGetには、?を含むクエリ文字列が必要です。および&または適切にバインドするためにルートを変更する必要があります。助けてください?

[HttpGet]
    public ActionResult Download(String fileID)                
    {
    ....// http://localhost/Download/51 
    }
4

1 に答える 1

1

idで設定されているデフォルトルートパラメータ名であるどちらかを使用します。Global.asax

[HttpGet]
public ActionResult Download(string id)
{
    ....// http://localhost/Download/51 
}

fileIDまたは、使用されるようにルーティング構成を変更します。

routes.MapRoute(
    "Default",
    "{controller}/{action}/{fileid}",
    new { controller = "Home", action = "Index", fileid = UrlParameter.Optional }
);

ルーティングの詳細については、以下も確認してください。

于 2012-08-26T16:09:11.157 に答える