-6ren">
gpt4 book ai didi

c# - 如何在 MVC2 的 HttpPost 中读取 TextArea 值和模型

转载 作者:太空宇宙 更新时间:2023-11-03 22:14:47 25 4
gpt4 key购买 nike

我是 MVC2 的新手,很抱歉提出愚蠢的问题。我寻找好的答案,但找不到。所以我的问题是:

我有看法:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyProject.MyDB.MyProducts>>" %>
<%@ Import Namespace="MyProject.MyDB" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Content" runat="server">
<% using (Html.BeginForm())
{%>
<table>
<%
foreach (var item in Model)
{%>
<tr>
<td>
<%:item.name%>
</td>
<td>
<%:String.Format("{0:g}", item.date)%>
</td>
</tr>
<% } %>
</table>
<div>
<%:Html.TextArea("MyTextArea")%>
</div>
<p>
<input type="submit" value="Send" />
</p>
<% } %>
</asp:Content>

我的 Controller 是:

[HttpGet]
public ActionResult ViewMyProducts(int id)
{
List<MyProducts> myModel = GetMyProducts(id);
return View(myModel);
}

[HttpPost]
public ActionResult ViewMyProducts(/*???What should I put here???*/)
{
if(/*I want "MyTextArea" value here*/ == something && myModel/*from view*/.count==5}
{
//do something
}
return View(myModel);
}

因此,在 HttpPost 中,我需要来自 View 的 myModel 和来自 View 的“MyTextArea”的值。我怎样才能得到它们??我将不胜感激。

最佳答案

我认为以下应该有效:

[HttpPost]
public ActionResult ViewMyProducts(string MyTextArea)

一个有用的做法是在您的表单中明确调用您的操作 - 通过更改此行:

<% using (Html.BeginForm())

<% using (Html.BeginForm("ViewMyProducts","ControllerName",HttpMethod.Post))

确保提交操作将其重定向到正确的操作。

就模型而言:

如果您只是检查计数 - 您可以创建一个隐藏字段来返回“模型”中的项目数,如下所示:

<%: Html.Hidden("modelCount", Model.Count());

但是如果你想要整个模型 - 它需要是这样的:

<%: Html.Hidden("myModel", Model);

然后你可以进一步修改你的 Action 看起来像这样:

ViewMyProducts(string MyTextArea, int modelCount)
{
//...
}

ViewMyProducts(string MyTextArea, IEnumerable<MyProject.MyDB.MyProducts> myModel)
{
//...
}

尽管您可以在 Controller 内部访问以刷新模型 - 所以如果您不需要传回整个内容,您仍然可以通过新调用重新填充 View 。

关于c# - 如何在 MVC2 的 HttpPost 中读取 TextArea 值和模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com