2

フォームを含むいくつかのページ (ユーザー コントロールのカスタムと同様) で使用されるユーザー コントロールがあります。その機能を保証する方法を考えていました。

最初に、このフォームの値を受け入れる単一のメソッドを持つ単一のコントローラーを用意したいと考えました。私を妨げている唯一のことは、このメソッドが計算などで完了した後、ユーザーコントロールが発生したビューに応じて、他のコントローラーとメソッドに転送する必要があることです。

次に、このユーザーコントロールを持つすべてのコントローラーに、そのコントローラーのデフォルトページに転送する同じ固定メソッドを持たせたいと思いました。これは、固定メソッドに転送するオプションが 1 つだけある場合にのみ機能します (これは現在の場合ですが、明日ではない可能性があります)。

私の提案の1つを機能させるためのきれいな方法はありますか、それともこのことを実現するための他のオプションがありますか?

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 に答える