2009-11-18 27 views
0

我在Index頁面上有一個菜單控件,呈現爲<%Html.RenderPartial(「MenuUserControl」); %>其中MenuUserControl是一樣的東西在索引頁上顯示不同的表單,取決於在ASP.NET MVC中點擊的鏈接

<li><%= Html.ActionLink("Link1","Index") %></li> 
    <li><%= Html.ActionLink("Link2", "Index")%></li> 
    <li><%= Html.ActionLink("Link3", "Index")%></li> 

現在我婉加載的onclick這些鏈接的索引頁本身的三種不同的形式,裝載在頁面加載第一種形式。我怎樣才能做到這一點。任何幫助表示讚賞。

回答

0

如果你需要傳遞有關的鏈接信息的RenderPartial

<% Html.RenderPartial("MenuUserControl", new[]{"link", "link"}); %> 

但最好是通過自定義模型(類對象),而不是字符串數組。

使用Ajax.ActionLink加載沒有頁面重新加載的表單。

要首先加載形式,可在索引頁面本身(添加HTML標記或來電的RenderPartial呈現形式,或使用RenderAction),或添加腳本到菜單部分這樣

<script type="text/javascript"> 
    $(function(){ $("a").eq(0).click(); } 
</script> 

這就需要做到這一點不過,jQuery。

如果你不知道我在說什麼,那麼你最好準備學習很多東西。

0

您將需要某種形式的JavaScript庫如jQuery做到這一點,剩下的就是想象力:

- 您可以預先加載的頁面加載的3種形式,然後隱藏在DOM準備最後兩個(pageLoad的) 。爲了方便起見,我會將其包裝在div中。

<script type="text/javascript"> 
     $(document).ready(function() { //This is like DOM ready 
      //here we hide the the last 2 forms 
      $('#div_id_form2').hide(); 
      $('#div_id_form3').hide(); 

      //Next set the events for the links (on click show form) 
      //on link 2 click 
      $('#link2').click(function(){ 
      //show the second form 
      $('#div_id_form2').show(); 
      }); 


      //on link 3 click 
      $('#link3').click(function(){ 
      //show the third form 
      $('#div_id_form3').show(); 
      }); 
     }); 
     </script> 

另一種選擇是採取Ajax方式,但需要更多的jQuery代碼和知識。 如果你有興趣參考http://docs.jquery.com/這就是jQuery的API參考。

如果您正在轉向MVC,我建議您學習任何JavaScript庫以幫助您處理一些稱爲DHMTL(動態HTML)的行爲。

0

首先做非Ajax版本。

有1個頁面索引,其中有3個部分。每個部分只有用於顯示錶單的html。

在您的操作中設置視圖模型(此動作鏈接1)

model.IsForm1Visible = true; 

您認爲使用該模型顯示諧音

<div id="linkContainer"> 
<% if(Model.IsForm1Visible){%> 
<%= Html.RenderPartial("Form1")%> 
<%}%> 
<% if(Model.IsForm2Visible){%> 
<%= Html.RenderPartial("Form2")%> 
<%}%> 
<% if(Model.IsForm3Visible){%> 
<%= Html.RenderPartial("Form3")%> 
<%}%> 
</div> 

如果您需要的Ajax,你可以從那裏繼續。

相關問題