我使用asp.net mvc进行模型绑定。当我将模型传递给视图时,我能够看到标签内显示的模型数据
<%= Html.Label(Model.title) %>
<%= Html.Label(Model.description) %>
但是我无法使用
执行相同的操作 <%= Html.TextArea(Model.description)%>
在标签中显示为反对文本框之间是否存在语法差异?
这是我的观点
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<EditDocumentViewData>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Update
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent"
<h2>Update</h2>
<form id="myForm" action="<%=Url.Action("Update") %>" method="post" >
<% Html.EnableClientValidation(); %>
<div id="validationSummary"><%= Html.ValidationSummary() %> </div>
<%= Html.ClientSideValidation(typeof(Document))
.UseValidationSummary("validationSummary") %>
<div style="float:left">
<input type="button" class="btnpost" id="btnMain" value="Main Thumb"/>
<input id="btnDelete" class="btnpost" type="button" value="Delete"/>
<br /> <br /> <br />
<br /> <br /> <br /> <br />
<table>
<%= Html.HiddenFor(m => m.id)%>
<tr> <td> <%=Html.Label("Title")%></td><td>
<%=Html.TextBox("title", Model.title)%>
</td> </tr>
<tr> <td> <%=Html.Label("Description")%></td><td>
<%= Html.TextArea("description", Model.description)%>
</td>
<td>
<%= Html.ValidationMessage("description")%>
</td>
</tr><tr><td> <%=Html.Label("Summary")%></td><td>
<%= Html.TextAreaFor(m=>m.summary)%>
</td> <td>
<%= Html.ValidationMessage("summary")%>
</td></tr>
</form>
</asp:Content>
我的控制器操作
[AcceptVerbs(HttpVerbs.Get)]
public ViewResult Update(int Id)
{
Document doc= _documentRepository.GetById(Id);
EditDocumentViewData documentViewData=new EditDocumentViewData();
documentViewData.id = doc.document_id;
documentViewData.category = doc.Category1.name;
documentViewData.title = doc.title;
documentViewData.Thumbs = doc.Thumbs.ToList();
documentViewData.description = doc.description;
documentViewData.summary = doc.summary;
return View(documentViewData);
// TempData["docid"] = doc.document_id;
//if (doc != null)
// return View(doc);
//else
// return View("Index");
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Update(EditDocumentViewData editDoc)
{
Document doc= _documentRepository.GetById(editDoc.id);
doc.title = editDoc.title;
doc.description = editDoc.description;
doc.summary = editDoc.summary;
_unitOfWorkManager.Commit();
return RedirectToAction("Index");
}
答案 0 :(得分:3)
在您的使用中,前两个元素创建label
元素,并使用label
文本和标签for
属性的参数。第三个将创建一个textarea
,但它使用该参数作为该区域的名称。如果您希望textarea
包含说明的内容,则需要使用其他签名。
<%= Html.TextArea( "Description", Model.Description ) %>
或使用强类型助手
<%= Html.TextAreaFor( m => m.Description ) %>
在另一个节点上,如果您只想显示模型属性的内容,则应该使用Encode
或更新的<%: %>
语法(在ASP.NET 4中)。
<span class="description">
<%= Html.Encode( Model.Description ) %>
</span>
答案 1 :(得分:2)
<%= Html.TextAreaFor(model => model.Description, 4, 10, new { style = "width: 100%", @class = "textarea" })%>