2012-03-22 10 views
0

同様の状況に遭遇したかどうかはわかりませんが、私に与えられた要件は次のとおりです。 -ASP.NET MVCでカスタムボタンを作成する(作成、読み取り、更新、削除のボタンではない)

私は、クライアント会社の詳細を管理するASP.NET MVCサイトを運営しています。ユーザビリティの問題から、いくつかのチェックボックスを削除して、編集ページの一般的な「適用」ボタンに置​​き換えるように求められました。我々は、編集ページに持って

現在のシナリオは次のとおりです。で

  1. 「すべての資産の速度の設定を有効にする」のチェックボックス
  2. 「すべての資産の対処を有効にする」ための
  3. チェックボックス
  4. [保存]ボタンをクリックすると、トリガーがデータベースを更新します。

今現在必要なのは、両方の操作を行うボタンの1つです。これは明らかに新しいNHibernateストアドプロシージャが必要ですが、それは後で問題になります。したがって、私が興味を持っているのは、この種のボタンをMVCで実現できるかどうかです。もしそうなら、特にActionResultメソッドを構築するのに役立つ経験があれば誰でもいますか?ありがとうございました。 :)

答えて

1

私は解決策のためにここに探してお勧めします:

http://weblogs.asp.net/dfindley/archive/2009/05/31/asp-net-mvc-multiple-buttons-in-the-same-form.aspx

を基本的に、あなたのアクションメソッドにデータを送信することができますし、実行するアクションのどのコースがチェック - 保存または適用されます。

[ActionName("Register")] 
[AcceptVerbs(HttpVerbs.Post)] 
[AcceptParameter(Name="button", Value="cancel")] 
public ActionResult Register_Cancel() 
{ 
    return RedirectToAction("Index", "Home"); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
[AcceptParameter(Name="button", Value="register")] 
public ActionResult Register(string userName, string email, string password, string confirmPassword) 
{ 
    // process registration 
} 

ボタン

<button name="button" value="register">Register</button> 
<button name="button" value="cancel">Cancel</button> 

シンプルフィルタ:

public class AcceptParameterAttribute : ActionMethodSelectorAttribute 
{ 
    public string Name { get; set; } 
    public string Value { get; set; } 

    public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo) 
    { 
     var req = controllerContext.RequestContext.HttpContext.Request; 
     return req.Form[this.Name] == this.Value; 
    } 
} 
+0

リンクのおかげか、次の2つのコントローラーアクションに(上記の記事から逮捕)このようなものを、それらを分割することができます。あなたはどんな進歩についても投稿し続けるでしょう。 – cmnunis

関連する問題