0

1 つのビューを使用して 2 つのフォームを実装する必要があるシナリオがあります... ログインとサインアップ用のフォームをそれぞれ持つホームページがあります (Facebook ホームページに似ています)。razor両方のフォームのコードを含むホーム ページ (Index.cshtml) のビューを作成しました。

[ @using (Html.BeginForm("LogIn", "Home", FormMethod.Post))]

[ @using (Html.BeginForm("SignUp", "Home", FormMethod.Post))]

ただし、ログイン フォームの [ログイン] ボタンをクリックするか、サインアップ フォームの [サインアップ] ボタンをクリックすると、ランタイムは基本的に、ログイン アクションとサインアップ アクションの両方のビューを作成する必要があるというエラーをスローします。私のindex.cshtmlにHTMLフォームを実装しました

[注: ASP.NET メンバーシップ プロバイダーは使用していません。そして、この質問は一般的に 2 つの形式であり、任意の 2 つの形式である可能性があります。]

私の質問は、LogIn.cshtml と SignUp.cshtml という名前のビューをさらに 2 つ作成する必要があるかどうかです。これはコードの重複を引き起こしませんか? 私は MVC 4 にまったく慣れていないので、ここで何をしようとしているのか理解していただければ幸いです。私が知りたいのは、これを実装する他の方法があるかどうかだけです。(jQuery、AJAX など)

public class HomeController : Controller
{
    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }

    [HttpGet]
    public ActionResult LogIn()
    {       
        return View();
    }

    [HttpPost]
    public ActionResult LogIn(Account acc)
    {                  
        // some code
        return View();
    } 

    [HttpGet]
    public ActionResult SignUp()
    {       
        return View();
    }

    [HttpPost]
    public ActionResult SignUp(Account acc)
    {                  
        // some code
        return View();
    }       

}
4

1 に答える 1