2

我有一个用户控件,它将在包含表单的多个页面中使用(与用户控件的自定义一样)。我在想如何保证它的功能。

首先,我想让一个带有单一方法的控制器接受这个表单的值。唯一阻碍我的是,在此方法完成计算等之后,它必须根据用户控件起源的视图转发到其他控制器和方法。

然后我希望所有具有此用户控件的控制器都具有相同的固定方法,然后将转发到该控制器的默认页面。这只有在固定方法只有一个选项可以转发(现在是这种情况,但明天可能不会)并且我可以在构建表单标签时以某种方式获取调用控制器时才有效。

有没有什么干净的方法可以让我的建议发挥作用,或者是否有其他选择可以让这件事顺利进行?

4

1 回答 1

2

您知道,您可以将公共属性添加到您的用户控件,然后在标记中引用这些属性以在当前上下文中执行适当的操作...

例如:

MyControl.ascx.cs:

/*snip*/
public string FormAction {get;set;}
/*snip*/

MyControl.ascx:

<% using(BeginForm(FormAction)){ %>
<!-- yadda -->
<% } %>

在任何 aspx 中:

<!-- boring html goes here -->
<%=Html.RenderUserControl(“~/Views/Shared/MyControl.ascx”,null /*orwhatever*/, new {FormAction="ActionThatHandlesMyFormPostLol"})%>

BeginForm 采用许多不同的参数,允许您控制表单的发布位置和方式。我不是 100% 清楚你的问题,但我希望这能让你知道如何继续前进......

于 2008-12-01T14:44:58.113 回答