如何使用户控件从便携式页面到其他页面

时间:2008-12-01 14:36:00

标签: asp.net-mvc reusability user-controls

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

首先,我希望单个控制器使用单个方法接受此表单的值。阻止我的唯一事情是,在完成计算之后,它必须转发到其他控制器和方法,具体取决于用户控件所产生的视图。

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

是否有任何干净的方法可以让我的建议之一起作用,或者是否有其他方法可以让这件事情发生?

1 个答案:

答案 0 :(得分: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%明确你的问题,但我希望这会让你知道如何继续前进......