0

我在视图中渲染了一个 ViewUserControl(.ascx 文件):

<% Html.RenderPartial("Comments", Model.Comments); %>

此 ViewUserControl 显示条目的相关注释。我希望这个控件也能渲染出一个表单,所以我的应用程序的用户可以做出贡献。

您将如何将表单添加到 ViewUserControl 并处理它的回发?

4

3 回答 3

1

没有 postaback,就像在标准的 asp.net 中一样,只能有将数据发布到某个 url(控制器/动作)的表单标签。
在您的部分用户控件中,编写:

<form action="controller/actionname" method="post">
<input type="text" name="inputText" />
<input type="submit" value="Post data to server" />
</form>

在 MVC 中,只有输入 type="submit" 才会触发表单提交。在标准的 ASP.NET webforms 中,您可以有许多 Linkbuttons、Buttons ......但在幕后,它们都通过 javascript 事件触发了对 input type="submit" 的简单点击。一种表单只能将数据发布到一个 URL(控制器/操作),但可以使用 javascript 进行更改(正如我们在“旧”asp.net webforms 的 html 源代码中看到的那样)。

然后,在控制器中,您可以处理发布数据:

[AcceptVerb(HttpVerb.Post)] // optionally 
public ActionResult ActionName(string inputText) ...
于 2009-11-03T11:56:11.570 回答
1

只需在其中添加与在任何页面上相同的表单即可。在 MVC 中,表单不会像这样回发 - 它只是通过 HTTP Post 将自身及其内容(输入控件)提交到 URL。

只需在您的控制器中创建一个操作(因此是一个 URL),表单将发布该操作并在那里执行所需的任何活动......

于 2009-11-03T11:54:15.793 回答
0

就像其他人已经回答的那样,您只需渲染一个表单并使用 ActionResult 处理它的提交。

例如,如果您的表单(可以在您网站的任何位置呈现)正在提交到http://www.yoururl.com/home/save,您将在主控制器上创建一个名为 save 的 ActionResult 方法来处理提交(可能的发布/获取方法)。

于 2009-11-03T22:50:19.747 回答