处理ViewUserControl中的表单

时间:2009-11-03 11:50:12

标签: c# asp.net-mvc asp.net-mvc-partialview

我在视图中呈现ViewUserControl(.ascx文件):

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

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

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

3 个答案:

答案 0 :(得分:1)

只需在此处添加表单,就像在任何页面上一样。在MVC中,表单不会回发 - 它只是通过HTTP Post将自己及其内容(输入控件)提交到URL。

只需在您的控制器中创建一个操作(以及一个URL),该表格将发布并执行所需的任何活动...

答案 1 :(得分:1)

没有postaback,就像在标准的asp.net中一样,只有表格标签可以将数据发布到某个网址(控制器/动作)。
在部分用户控件中,写下:

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

在MVC中,只有输入类型=“提交”触发表单提交。在标准的ASP.NET网页表单中,你可以拥有许多链接按钮,按钮......但是在掩护下,它们都会通过javascript事件触发输入类型=“提交”的简单点击。一个表单只能将数据发布到一个URL(控制器/操作),但可以使用javascript进行更改(正如我们在'旧'asp.net webforms的html源代码中看到的那样)。

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

[AcceptVerb(HttpVerb.Post)] // optionally 
public ActionResult ActionName(string inputText) ...

答案 2 :(得分:0)

就像其他人已经回答过一样,你只需渲染一个表格并用ActionResult处理它。

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