2014-04-20 180 views
0

好的,我最近問了一個類似的問題,我得到了很好的答案。不過,我可能沒有準確地表達我的問題,所以我給它一個去這裏:將價值從視圖傳遞到控制器

這是我的看法

@using (Html.BeginForm()) 
{ 
<h3 class="editable">@Model.Title</h3> 

<input type="submit" value="submit"> 

} 

<h3>有類"editable"在這種情況下,意味着它可以通過編輯一個內聯編輯器。

@Model.Title 

是從我的數據庫的屬性,我希望能夠與在線編輯器改變。

該代碼會產生相同的結果:

@using (Html.BeginForm()) 
{ 
    <h3 class="editable">@Model.Title</h3> 

    <input type="text" id="testinput" name="testinput" /> 

    <input type="submit" value="submit"> 
    } 
Controller: 


[HttpPost] 
     public ActionResult FAQ(string testInput) 
     { 


      page.Title = testInput; 

      return View(); 
     } 

Allthough,這不使用,我想內嵌編輯器。

有沒有辦法將<h3>看作是textbox,允許我發送那裏的內容給控制器?

我想說清楚,我不想直接發送@model.title到控制器。 我想發送通過單擊<h3>創建的值並使用內聯編輯器對其進行更改。

謝謝!

+0

您可能需要擁有自己的框架或使用現有的框架來執行此操作,並將其命名爲x-editable。 –

回答

1

當您以這種方式提交表單時,控制器會嘗試將其匹配到正確的對象類型。如果您只想傳回1或2個對象,請嘗試使用操作鏈接。這些應該允許您傳入名稱的值以匹配您的控制方法。

+0

謝謝你的回答! 對於mvc,我很新,如果你有時間,你會介意發佈一個代碼示例嗎? 而且,當你說控制器會嘗試與名稱匹配。這意味着如果我可以給h3一個名字,它會匹配嗎?但我能做到嗎? – user2915962

0

查看:

@model MvcApplication2.Models.ShopItem 

@{ 
    ViewBag.Title = "Shop"; 
} 

<h2>ShopView</h2> 
@using (Html.BeginForm()) 
{ 
    <h3 class="editable">@Model.Name</h3> 
    @Html.TextBox("Cost",0.00D,null) 
    <input type="submit" title="Submit" /> 
} 

型號:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace MvcApplication2.Models 
{ 
    public class ShopItem 
    { 
     public int? Id { get; set; } 
     public string Name { get; set; } 
     public decimal? Cost { get; set; } 

     public ShopItem() 
     { 
      Id = null; 
      Name = ""; 
      Cost = null; 
     } 
    } 
} 

控制器:

public ActionResult Shop() 
    { 
     ShopItem item = new ShopItem(); 
     return View(item); 
    } 

    [HttpPost] 
    public ActionResult Shop(decimal Cost) 
    { 
     ShopItem item = new ShopItem(); 
     item.Cost = Cost; 

     return View(item); 
    } 

如果你把這個在HomeController中,對它進行測試。您會看到我的輸入具有較強的類型,並與我的動作輸入相匹配

+0

謝謝你試圖幫助,我試圖將你的代碼粘貼到另一個項目,看看是否可以從中學習...在@ html.textbox上出現錯誤 CS0121:調用在下列方法之間不明確,或屬性:'System.Web.Mvc.Html.InputExtensions.TextBox(System.Web.Mvc.HtmlHelper,string,object,string)'和'System.Web.Mvc.Html.InputExtensions.TextBox(System.Web.Mvc。 HtmlHelper,字符串,對象,System.Collections.Generic.IDictionary )' – user2915962

相關問題