0

ASP.Net MVC 4 と ADO.net (EF ではない) を使用してユーザー登録システムに取り組んでいます。

BAL/BLL レイヤーにこのメソッドがあります。

    public static void InsertMemberUsername(RegisterRequest register, Guid id_fk)
    {
        if (Exist(register.UserName.Username))
        {
            // display error message to pick some other username
        }

        MEMBER_USERNAME entityToCreate = CreateMemberUsername(register, id_fk);
        MEMBER_USERNAME_DAL.SQLAtlInsert(entityToCreate, "Server=ConnSting Here;");
    }

私のコントローラーにはこれがあります:

    [CaptchaMvc.Attributes.CaptchaVerify("Captcha is not valid")]
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Register(RegisterRequest model)
    {
        if (ModelState.IsValid)
        {
            Membership_BAL.Register(model);
            // TODO: Redirect user to profile page
            return RedirectToAction("Index", "Home");
        }

        TempData["Message"] = "Error: captcha is not valid.";
        return View();
    }

InsertMemberName メソッドは、Register メソッド内で呼び出されます。

ユーザー名が既に使用されている場合にエラー メッセージを表示するには、何が最適でしょうか?

4

1 に答える 1

1

これを達成するには、明らかにさまざまな方法があります。

から関数を変更します

public static void InsertMemberUsername(RegisterRequest register, Guid id_fk)
{
    if (Exist(register.UserName.Username))
    {
        // display error message to pick some other username
    }

    MEMBER_USERNAME entityToCreate = CreateMemberUsername(register, id_fk);
    MEMBER_USERNAME_DAL.SQLAtlInsert(entityToCreate, "Server=ConnSting Here;");
}

public static bool InsertMemberUsername(RegisterRequest register, Guid id_fk)
{
    if (Exist(register.UserName.Username))
    {
        return false;
    }

    MEMBER_USERNAME entityToCreate = CreateMemberUsername(register, id_fk);
    MEMBER_USERNAME_DAL.SQLAtlInsert(entityToCreate, "Server=ConnSting Here;");

    return true;
}

モデル内にエラー メッセージを表すパラメーターを設定し、TempData を使用しないようにしています。何かのようなもの

public class SomeModel
{
     public string ErrorMessage { get; set; }
     // Your other model parameters go here.
}

次に、このようにモデルにパラメーターを設定できます

var someModel = new SomeModel();

if(!InsertMemberUsername( // You parameters))
{
    someModel.ErrorMessage = "Error: captcha is not valid.";
}

そして、このモデルを次のようにビューに渡します

return View(someModel);

ビュー内で、このパラメーターの内容を表示できるようになりました。たとえば、

<div>
    @if(!string.IsNullOrEmpty(@Model.ErrorMessage))
    {
        @Model.ErrorMessage
    }
</div>
于 2013-10-03T15:06:35.220 に答える