0

私はデータをコントローラーに投稿しようとしているサンプルMVCプロジェクトに取り組んでいます。サンプルを投稿しましたが(以下を参照)、メソッドに[HttpPost]を追加すると、「404」エラーが発生します。

意見:

<% using (Html.BeginForm()) { %>
    <%= Html.Telerik().NumericTextBox()
                .Name("NumericTextBox")
                .Spinners(false)
                .EmptyMessage("ID")
    %>
    <input type="submit" value="Submit" />
<% } %>

コントローラ:

[HttpPost]
public ActionResult GetDetails(int id)
{
    return View();
}

**I also tried,**
[HttpPost]
public ActionResult GetDetails(FormCollection collection)
{
    return View();
}

ルート:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Customer", action = "GetDetails", id = UrlParameter.Optional } // Parameter defaults
);
4

2 に答える 2

2

Nameをコントローラーのパラメーターと一致させる必要があるので、次のようにする必要があります。

Html.Telerik().NumericTextBox()
            .Name("id")

ノート:

  1. ルートパラメーターでUrlParameter.Optionalを指定しましたが、コントローラーアクションidでnull許容(つまり)にしない限り、実際にはオプションではありません。int? id
  2. 通常、サーバー上で何も変更しないHTTPリクエストにはPOSTではなくGETを使用する必要があります。これは、ここに当てはまるようです。
于 2012-09-21T16:36:08.043 に答える
0

2番目の方法を使用する必要がありますが、代わりに次をFormsCollection使用してください。

GetDetails(int NumericTextBox)

パラメータは、入力ボックスと同じ名前である必要があります。

于 2012-09-21T16:36:06.403 に答える