2017-11-10 26 views
0

パラメータを部分ビューに渡す必要がありますが、どのように見つけられません。引数を部分ビューに渡すC#MVC

基本的に私の問題は次のとおりです。RenameFileAndFolderを別のビューから呼び出し、ユーザーをIndexコントローラページに移動し、_fileTableにパスを渡す必要があります。

コントローラー:

public ActionResult Index(){...} 

public ActionResult _fileTable(string path){...} //partial view 

[HttpPost] 
public ActionResult RenameFileAndFolder(string path, string newName){...} 

ビュー:パーシャルビューは、ビュー内で呼び出され

function RenameFileFolder() { 
    //(...) 
    $.ajax({ 
     type: "Post", 
     url: '@Url.Action("RenameFileAndFolder", "ManageFiles")', 
     data: { path: '@(currentPath)', newName: inputName }, 
     dataType: "json", 
     traditional: true, 
     success: function (data) { 
      document.getElementById("inputNewName").value = ""; 
      //Here how can I say: "go to the index page with the path="X" on the partial view"? 
      //currently I am doing this but it does not allow me to pass a parameter 
      window.location.assign("Index"); 
    }) 
} 

<div id="tabelaDiv"> 
    @{ 
     Html.RenderAction("_fileTable", Model); 
    } 
</div> 

EDIT: メートルでの私の状況鉱石の詳細: 私はそれの中の部分的なビューのオメガでビューベータにいます。次に、私はView alphaに行き、ajaxクエリーでRenameFileFolder()関数を呼び出します。もし成功すれば、View Betaに戻り、パーシャルビューomegaにパラメータを渡したいと思っています。

+0

:あなただけそれが単一部分ビューをレンダリングするのに十分な長持続したい場合は、そのようなViewDataをなどの持続データのための他の方法のいずれかを使用する方が良いかもしれ見る? – Shyju

+0

@Shyjuあなたの答えをありがとう。私は私の見解の中で部分的な見方を呼んでいます。上記の私の編集 – myusername21

+0

を見て、部分ビューのモデルとして 'path'(文字列)の値を渡したいと思いますか? – Shyju

答えて

0

単にあなたがセッション変数に新しいファイルパスを格納して、あなたのビューでアクセスしてみてくださいActionMethod

<div id="tabelaDiv">   
     @Html.Action("_fileTable",new{path= "your path"}) 
</div> 
+0

あなたの答えであるIsmailに感謝します。しかし、私はビュー内で部分的なビューを呼び出しています(上記の私のコードの更新を参照してください)。私があなたが好きなら、ビューの部分表示(ページのどの部分)をレンダリングしたいのか、ビューはどのように "認識"していますか? – myusername21

+0

私の更新された回答を参照 –

+0

ありがとうございます。私はよく説明していないと思う。あなたの解決策は私の場合には当てはまりませんでした。最初の投稿で私の更新を見てください。ありがとう、ごめんなさい。 – myusername21

0

をパラメータを送信するために、これを書きます。これにより、ビュー間で変数を渡す手間が省けます。

[HttpPost] 
    public ActionResult RenameFileAndFolder(string path, string newName) 
    { 
     //code to get new file path 

     //set session variable 
     Session["path"] = "<filepath>"; 

     //return your ActionResult; 
    } 

変数を格納した後、あなたが使用して、ビューにセッション変数にアクセスすることができますが:

@Session["path"] 

それは本当にあなたが持続するためにこのデータをご希望のどのくらいに依存します。この変数はセッション全体で永続的に維持されるため、リセットする場合は明示的に行う必要があります。Session["path"] = null

あなたが部分的に呼び出している

https://www.codeproject.com/Articles/576514/AplusBeginner-splusTutorialplusonplusVariousplus

関連する問題