2014-04-20 144 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

相关问题