2012-06-29 79 views
0

這是查看 ViewPage.cshtmlMVC3 ViewBag概念

@using (Html.BeginForm("Display", "Home", FormMethod.Post)) 
{ 
<div>Name:<a>@ViewBag.st</a><br /></div> 
     <input type="submit" value="Submit" /> 
<br /> 
} 

我的編輯@ jQuery的ViewBag.st

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('a').click(function() { 
     var textbox = $('<input id="Text1" type="text" size="100" />') 
     var oldText = $(this).text(); 
     $(this).replaceWith(textbox); 
     textbox.blur(function() { 
      var newValue = $(this).val(); 
      $(this).replaceWith($('<a>' + newValue + '</a>')); 
     }); 
     textbox.val(oldText); 
    }); 


}); 

</script> 

我控制器methos是

public ActionResult Viewdetails() 
    { 
     User ur = new User(); 
     ur.Name = "Danny"; 

     ViewBag.st = ur.Name; 
     return View(); 

    } 

我的模型類是 User.cs

public class User 
{ 

    //public string name { get; set; } 
private string m_name = string.Empty; 

public string Name 
{ 
    get 
    { 
     return m_name; 
    } 
    set 
    { 
     m_name = value; 
    } 
} 
} 

後編輯@ ViewBag.title我要存儲的值,並傳遞給下一個查看任何人都可以提出一些想法

+3

我建議將模型傳遞到頁面而不是使用viewbag。 – JustAnotherDeveloper

+0

因爲我想編輯它作爲標籤我使用這個這個 – Pavan

+0

Pavan,我看到了另一個ViewBag相關的職位由你。請不要冒犯它。您沒有將ViewBag用於適當的目的。請嘗試找出'ViewBag'的實際使用。 'Model'應該是您的主要媒介,可以將數據從控制器傳遞到視圖。當你需要傳遞一些不方便的數據通過模型時使用viewbag。另外,您需要了解viewbag的持久性。 Viewbag不會永遠活着。 – Mohayemin

回答

2

我建議你不要使用ViewBag可言。

因此,在你的JavaScript,你可以給你的文本框中輸入相同的名稱User模型屬性(Name):

var textbox = $('<input type="text" size="100" name="Name" />'); 

,然後有2個控制器動作(GET和POST):

public ActionResult Viewdetails() 
{ 
    User ur = new User(); 
    ur.Name = "Danny"; 
    return View(ur); 
} 

[HttpPost] 
public ActionResult Display(User model) 
{ 
    return View(model); 
} 

而且裏面Viewdetails.cshtml

@model User 
@using (Html.BeginForm("Display", "Home", FormMethod.Post)) 
{ 
    <div>Name: <a>@Model.Name</a><br /></div> 
    <input type="submit" value="Submit" /> 
    <br /> 
} 

而在Display.cshtml內:

@model User 
<div>You have selected: @Model.Name</div> 
+0

點擊鏈接時不會發生什麼?這就是你的JavaScript代碼應該做的。點擊鏈接時,它會用文本框替換此鏈接,並允許用戶編輯文本。 –

+0

如果您使用我向您展示的代碼,那麼這不是不可能的:'

'。鏈接的內容是模型的Name屬性的值。 –

+0

是的,我可以編輯Danny,但無法在Display.cshtml中顯示編輯過的人我只能看到您已選擇: – Pavan