2017-01-06 7 views
-2

を返しません。コントローラは、私は2つのコントローラを持っているビュー

LoginController.csここ

public ActionResult Authentication(string GlobalId, string password) 
{ 
    // validation code 
    return RedirectToAction("Index", "List"); 
} 

ListController.cs

public ActionResult Index() 
{ 
    List<EbitProjectModel> obj = new List<EbitProjectModel>(); 
    obj = _categoryMasterService.getProjectInformationAll(); 
    return view("Index", obj); 
} 

そのはListControllerのIndexメソッドに正しくリダイレ​​クトします。しかし、そのビューをレンダリングしない(Indexビュー)。それはajax.BeginFormポストの助けを借りて私がAuthenticationメソッドを呼び出した同じビュー(Loginビュー)を保持しています。

ここには何かがありますか?

+1

リターンビュー(obj)を使用します。リストコントローラー –

+2

これは実際のコードのようには見えません。アクションリダイレクトはリストコントローラーではなくプロジェクトリストコントローラーを指しています。リストコントローラーのビューメソッドにはスペルミスがあります(小文字のv)。あなたがデバッグするとどうなりますか?実行はリストコントローラのインデックスアクションに入るか? –

+0

@ J.Steen私の悪い..私はコードを編集しました。正しいコントローラーを指しています。 ..はい、デバッグ後..リストコントローラーのアクションメソッド...コードへのステップが実行されていますが、ビューを返さない –

答えて

1

あなたの質問に最初に記載されたものとは逆に、Html.BeginFormの代わりにAjax.BeginFormを使用しているようです。違いは、最初はAJAXリクエストを使用してフォームを送信することです。これは、ブラウザがページから移動しないことを意味し、このAJAXリクエストから来る情報をDOMに更新するのはあなたの責任です。この場合

それはあなたがあなたのDOMの関連する部分のみ更新することができるように、このような行動ではなく、むしろPartialViewからViewを返すためにも意味がありません:

return PartialView("Index", model); 

そしてこの更新のためにをあなたはfollowiを持っていることを前提とし

@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result" })) 
{ 
    ... 
} 

:あなたは結果が注入されるのdivのごAjax.BeginForm IDで指定する必要があり起こること NGプレースホルダ:

<div id="result"></div> 

しかし、これは、それはおそらく完全なポストバックを行うと離れログインフォームから移動する方が理にかなってログインフォームですので、この場合には

@using (Html.BeginForm()) 
{ 
    ... 
} 

ブラウザが掲載しますあなたのListControllerのIndexアクションにリダイレクトされ、それに対応するビューをレンダリングする、Authenticationアクションへの資格情報。

+0

はい..あなたは正しいです..私はここでAjax.BeginFormを使ってばかげたミスを犯しました... hemlとうまく働いています.Beginform ..ありがとう –

関連する問題