1
ウェブブラウザが次のURLで自分の行動を呼び出しています。URLパラメータとその中のピリオドをMVCアクションパラメータにバインドするにはどうすればよいですか?
Request URL:http://localhost:4000/MyController/UrlCheck?Menu.Url=sometext
私の行動は次のとおりです。
public JsonResult UrlCheck(string Url)
{
return Json("Url is " + Url , JsonRequestBehavior.AllowGet);
}
ただし、Urlパラメータは決してバインドされません。次のように使用しないでください。 URLは、Ajaxのポストの一部としてMVC自体によって生成され、複雑なオブジェクトのプロパティに関連付けられてい
public JsonResult UrlCheck([Bind(Prefix="Menu")] string Url)
、したがって「Menu.Url」ビット。 URLパラメータの名前を変更するのは簡単ではありません。
また、パラメータ名としてMenu_Urlを試しました。アクションが実行され、ルーティングが正常に動作するはずです。
あなたは、例えば、あなたの複雑なオブジェクトにバインドする代わりに、 '公共化するJsonResult UrlCheck(MyComplexObjectメニュー)'試したことがありますか? Menu.Urlを確認することができます。 – counsellorben
これはうまくいくかもしれませんが、複雑なオブジェクトは複雑で、単純なハックは@Charlinoが以下に示唆したものです。両方の同様のアプローチ、ありがとう。 –