مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

yamani8888

عضویت از 1393/04/15

اشکال در Captcha MVC

  • یکشنبه 15 فروردین 1395
  • 20:42
تشکر میکنم

سلام.

هنگامی که مقدار تصویر اشتباه وارد شود پیغام خطای لاتین نمایش داده می شود در صورتی که متن پیغام فارسی شده!!!!!


ModelState.AddModelError("CaptchaInputText", "عبارت وارد شده صحیح نیست");

 

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 16 فروردین 1395
  • 08:14

کد ویو و کنترلر را قرار دهید تا بررسی کنم

کاربر سایت

yamani8888

عضویت از 1393/04/15

  • دوشنبه 16 فروردین 1395
  • 10:39

کد ویو

@using CaptchaMvc.HtmlHelpers
@model FekreKaghaziOnlineShop.Models.RegisterViewModel

@{
    ViewBag.Title = "عضویت در فکر کاغذی";
    var captcha = Html.Captcha("تصویر جدید", "",3, "عبارت در تصویر را وارد کنید", false);
}

<h2>عضویت در سایت</h2>


@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
      
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.UserName, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.Pass, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Pass, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Pass, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.RePass, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.RePass, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.RePass, "", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <span class="glyphicon glyphicon-user" ></span>
            @Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
            </div>
        </div>



        <div class="form-group">
            <div class="col-md-2">
                تصویر امنیتی
            </div>
            <div class="col-md-10">
                @captcha
                @Html.ValidationMessage(captcha.BuildInfo.InputElementId, new { @class = "text-danger" })
            </div>
        </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="ثبت نام" class="btn btn-danger" />
            </div>
        </div>
   
}


<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script>
    $(function() {
        $('#CaptchaInputText').addClass('form-control');
    });
</script>

کد کنترل:

 public ActionResult Register(RegisterViewModel register)
        {
            if (ModelState.IsValid)
            {
                if (this.IsCaptchaValid("Captcha is not valid"))
                {
                    if (!db.Users.Any(u => u.Email == register.Email.Trim().ToLower()))
                    {

                        Users usr = new Users()
                        {
                            Email = register.Email.Trim().ToLower(),
                            ActiveCode = Guid.NewGuid().ToString(),
                            IsActive = false,
                            RegisterDate = DateTime.Now,
                            Password = FormsAuthentication.HashPasswordForStoringInConfigFile(register.Pass, "MD5"),
                            RoleID = 2,
                            UserName = register.UserName
                        };
                        db.Users.Add(usr);
                        db.SaveChanges();
                    }
                    else
                    {
                        ModelState.AddModelError("Email", "ایمیل وارد شده تکراری است");
                    }
                }
            }
            else
            {
                ModelState.AddModelError("CaptchaInputText", "عبارت وارد شده صحیح نیست");
            }
            return View(register);
        }

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 16 فروردین 1395
  • 10:51

به شکل زیر بنویسید

public ActionResult Register(RegisterViewModel register)
        {
            if (ModelState.IsValid)
            {
                if (this.IsCaptchaValid("عبارت وارد شده صحیح نیست"))
                {
                    if (!db.Users.Any(u => u.Email == register.Email.Trim().ToLower()))
                    {

                        Users usr = new Users()
                        {
                            Email = register.Email.Trim().ToLower(),
                            ActiveCode = Guid.NewGuid().ToString(),
                            IsActive = false,
                            RegisterDate = DateTime.Now,
                            Password = FormsAuthentication.HashPasswordForStoringInConfigFile(register.Pass, "MD5"),
                            RoleID = 2,
                            UserName = register.UserName
                        };
                        db.Users.Add(usr);
                        db.SaveChanges();
                    }
                    else
                    {
                        ModelState.AddModelError("Email", "ایمیل وارد شده تکراری است");
                    }
                }
 else
            {
                ModelState.AddModelError("CaptchaInputText", "عبارت وارد شده صحیح نیست");
            }
            }
  
            return View(register);
        }

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)