从MVC3中的已发布表单中获取Textarea值

时间:2013-06-18 11:32:53

标签: c# asp.net asp.net-mvc-3 post

这是我的表格

@using (Html.BeginForm("EditPayments", "BookingPathLabelsCms"))
        {
            if (@Model.DisplayName == "Payment Labels")
            { 
            <textarea id="seeit" name="seeit" rows="5" cols="10"></textarea>

            <textarea id="seeitNoSelect" name="seeitNoSelect" rows="5" cols="10"></textarea>

            <div class="cmsButtonContainer">
                <a href="@Url.Action("Index", "BookingPathLabelsCms")">Cancel it</a>
                <input type="submit" name="Save" value="Save it"@* onmouseover="copyto();"*@ />
            </div>
            }
        }

这是我的控制器动作

public ActionResult EditPayments(BookingPathLabelsCmsViewModel model)
{
     string txtarea = Request.Form["seeit"];
     return RedirectToAction("Index");
}

这里没有获得textareas的值,而是断点中的值,请参见图像。 enter image description here

2 个答案:

答案 0 :(得分:1)

您的代码应如下所示:

@using (Html.BeginForm("EditPayments", "BookingPathLabelsCms"))
{
    if (@Model.DisplayName == "Payment Labels")
    { 
        @Html.TextBoxFor(m => m.SeeIt)
        @Html.TextBoxFor(m => m.SeeItNoSelect)

        <div class="cmsButtonContainer">
            <a href="@Url.Action("Index", "BookingPathLabelsCms")">Cancel it</a>
            <input type="submit" name="Save" value="Save it"@* onmouseover="copyto();"*@ />
        </div>
    }
}

当然,您的ViewModel BookingPathLabelsCmsViewModel应具有SeeIt和SeeItNoSelect属性。之后,MVC将绑定正确输入的数据。

答案 1 :(得分:0)

  

首先创建一个具有属性的类。

public class TextAreaProperty
{
    public string MyTextAreaValue { get; set; }
}
  

在视图上使用声明如:

@model <project_name>.Models.<Class_name>
  

在这种情况下:

@model MvcApplication1.Models.TextAreaProperty
  

使用此textArea Razor

@Html.TextAreaFor(x=> x.MyTextAreaValue)  
  

on method post接收参数类型TextAreaProperty

[HttpPost]
public ActionResult Index(TextAreaProperty textAreaProperty)
{
    return View();
}
  

您将从textAreProperty获取值。