我有一个用户控件,它将在包含表单的多个页面中使用(与用户控件的自定义一样)。 我在考虑如何保证其功能。
首先,我希望单个控制器使用单个方法接受此表单的值。阻止我的唯一事情是,在完成计算之后,它必须转发到其他控制器和方法,具体取决于用户控件所产生的视图。
然后我希望所有具有此usercontrol的控制器具有相同的固定方法,然后转发到该控制器的默认页面。这只有在固定方法只有一个选项转发时才会起作用(现在是这种情况,但可能不是tomorow)并且在构建表单标签时我可以以某种方式获得调用控制器。
是否有任何干净的方法可以让我的建议之一起作用,或者是否有其他方法可以让这件事情发生?
答案 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%明确你的问题,但我希望这会让你知道如何继续前进......