2

次の jQuery コードを使用して、ビューからアクションにパラメーターを渡したいのですが、パラメーターを渡すことができません。何か不足していますか?

$('li').click(function () {  
employeeID = $(this).attr('id');    
window.location.href = '/ApproveWork/GetEmployeeDays/'+employeeID; 
});

コントローラ:

[HttpGet]
public ActionResult GetEmployeeDays(string userCode)
{
     .....
    return View("GetEmployeeDays", model);
}

Global.asax からのルーティング

public static void RegisterRoutes(RouteCollection routes)
 {
   routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
   routes.MapRoute(
          "Default", // Route name
          "{controller}/{action}/{id}", // URL with parameters
           new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );          
  }

PS AJAX jQuery関数を使用しようとしましたが、アクションで指定したビューが返されません。

4

4 に答える 4

9

あなたのJavaScriptはビューページにありますか

その場合は、Url.Action ヘルパーを使用して、通常の方法で URL を作成します。

var url = '@Url.Action("Action", "Controller", new {parametername = "REPLACEME"})';
window.location.href = url.Replace('REPLACEME', parameter_value);

クライアント側の変数を考慮して更新 *更新 2: タイプミスを更新*

于 2013-01-18T11:40:01.947 に答える
3

ajaxで試しましたか?

$.ajax({
  url: '@Url.Action("GetEmployeeDays", "ApproveWork")',
  type: 'GET',
  dataType: 'html',
  contentType: 'application/json; charset=utf-8',
  data: { userCode: $(this).attr('id') }
 })
于 2013-01-18T11:55:13.850 に答える
2

Global.asax ファイルの登録ルートを確認してください。

あちらのオプション変数名を確認してください。

以下を使用して登録ルートがあるとします。

routes.MapRoute( _
            "Default", _
            "{controller}/{action}/{id}", _
            New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
        )

以下の方法でアクションを記述する必要があります。

[HttpGet]
public ActionResult GetEmployeeDays(int id)
{
     .....
    return View("GetEmployeeDays", model);
}

また

[HttpGet]
public ActionResult GetEmployeeDays(string id)
{
     .....
    return View("GetEmployeeDays", model);
}
于 2013-01-18T11:54:40.297 に答える