0

これはMVC3アプリです。Telerikグリッドがあり、行がクリックされたときに、Telerikウィンドウをポップアップしたいと思います。ウィンドウには部分的なビューが表示されます。私のグリッドは大丈夫です。これはウィンドウのコードです:

  @(Html.Telerik().Window()
    .Name("EditTaskWindow")
    .Visible(false)
     .Content(@<text><iframe id="ifrmEditTask" width="600" height="500" marginheight="0"   marginwidth="0"></iframe></text>)

)

これは、ウィンドウを開くjavascriptです。

   function WFTaskGrid_onRowSelect(e) {
       var url = "@(Url.Content("~/WorkflowTask/Edit/"))" + "1/2/3";
        $('#ifrmEditTask').attr('src',url);
        $('#EditTaskWindow').data('tWindow').center().open();
     }

しかし、グリッドの行をクリックするとウィンドウがポップアップしますが、404が「WorkflowTask / Edit/1/2/3」を見つけることができません。これが私のコントローラーです。

    public ActionResult _Edit(string id, string sub, string log)        
       {
           return PartialView();
      }

これをglobal.asaxに追加しました:

   routes.MapRoute(
     "EditTasks", // Route name
    "{controller}/{action}/{id}/{sub}/{log}", // URL with parameters
     new { controller = "WorkflowTask", action = "Edit", id = UrlParameter.Optional, sub = UrlParameter.Optional, log = UrlParameter.Optional } // Parameter defaults
 );

まだ404を入手してください。誰かが理由を知っていますか?ありがとう

4

1 に答える 1

1

あなたが持っているとActionResult

public ActionResult _Edit(string id, string sub, string log)       

ルートを次のように指定しました

routes.MapRoute(
     "EditTasks", // Route name
    "{controller}/{action}/{id}/{sub}/{log}", // URL with parameters
     new { controller = "WorkflowTask", action = "Edit", id = UrlParameter.Optional, sub = UrlParameter.Optional, log = UrlParameter.Optional } // Parameter defaults
 );

エラーが表示されますか?

アクション結果の前に置くアンダースコア_Edit

そして、あなたは

  var url = "@(Url.Content("~/WorkflowTask/Edit/"))" + "1/2/3";

まだアンダースコアがありません

既存のルートで考えられる解決策は、次のようなアクション名を追加することです。

[ActionName("Edit")]
public ActionResult _Edit(string id, string sub, string log)  
于 2012-05-29T15:10:37.460 に答える