2017-03-04 13 views
0

私はユーザダッシュボードにサブビューを書く方法を知らないので、問題があります。ASP .Net MVC |表示でサブビューを追加する方法

例:

私がログインしているユーザーのためのダッシュボードを持っていると、パスのダッシュボード/プロファイルがあります。 ダッシュボード - コントローラ、プロファイル - 表示。 プロファイルビューでは、概要、個人データ、パスワードの変更という名前のセクション/サブビュー(私はそれがどのように呼び出されるかわかりません)を作成したいと思います。

私は「個人データ」をクリックするとメニューが表示されますが、右側のコンテナに個人データがロードされますが、すべてのページは再ロードされません。 「パスワード変更」をクリックした場合と同じ状況で、「パスワード変更」の内容を右側に表示したいのですが、再読み込みはしません。

どうすれば入手できますか?誰でも助けてくれますか?

ありがとうございます!

+0

ページを更新せずにコンテンツをビューに動的に読み込むにはjavascriptとajaxが必要です。 –

+0

@StephenMuecke私はアクションが必要なActionResultsメソッドを作成する必要があるのですか?パスワード、個人データ、および概要を変更するための部分的なビューを分離しますか?私は正しいですよ ? – vlan99

+0

はい。ポップアップで、ユーザのパスワードを変更するためのフォームを表示するダイアログを表示させたい場合は、部分的に返すサーバメソッドを呼び出す '$(someElement)load( '@ Url.Action(...)')あなたの 'ResetPasswordForm'のビューを 'someElement'の中に挿入してください –

答えて

0

これはあなたが探しているものですか? Partial Views

+0

はい、私が間違っていない場合は、ページを再読み込みしたくない場合に部分ビューを使用することができます。私は部分ビューがメインビューに永久に含まれていることを意味します。私は、これらの「部分ビュー」がメニューの適切なボタンをクリックしたときにのみロードされることを知りたいと思います。 – vlan99

+0

上記のとおり。他のテクニックを使う代わりにウェブソケットを使うことをお勧めします。これを見てみましょう - https://radu-matei.github.io/blog/aspnet-core-websockets-middleware/そしてこの投稿 - https://radu-matei.github.io/blog/real-time -aspnet-core / –

0

コントローラとAJAX getのリクエストから部分的なビューを返すことになります。もちろん

お使いのコントローラで

public class SomeController : Controller 
{ 
    [HttpGet] 
    public ActionResult SomeAction() 
    { 
     // do some stuff 
     return PartialView(); 
    }  
} 
あなたのjsスクリプトで

$.ajax({ 
    url: '/Some/SomeAction', 
    contentType: 'application/html; charset=utf-8', 
    type: 'GET', 
    datatype: 'html' 
}) 
.success(function (result) { 
    $("#container").html(result); 
}) 
.error(function (xhr, status) { 
    alert("We are having trouble, please try again later"); 
}); 

これらの事を処理するための最良の方法は、角2または反応するようなフロントエンドのフレームワークです。

関連する問題