نمایش نتایج 1 تا 2 از 2

نام تاپیک: خطا در ارسال مدل به اکشن

  1. #1
    کاربر جدید آواتار alirezaavini
    تاریخ عضویت
    شهریور 1397
    محل زندگی
    تهران
    سن
    27
    پست
    20

    Exclamation خطا در ارسال مدل به اکشن

    سلام
    من یه ویو دارم که داخلش یه مدل ارسال میکنم به یه اکشن اما مدل به صورت کامل به اکشن ارسال نمیشه
    کد اکشن:

    public IActionResult Register()
    {
    return View();
    }
    [HttpPost]
    public IActionResult Register(RegisterViewModel register)
    {
    if (ModelState.IsValid)
    {
    if (_user.IsMobileNumberExist(register.Mobile))
    {
    ModelState.AddModelError("Mobile","این شماره موبایل قبل ثبت نام کرده است");
    return RedirectToAction(nameof(Login));
    }
    else
    {
    User user = new User()
    {
    IsActive = false,
    Mobile=register.Mobile,
    Code=CodeGenerator.ActiveCode(),
    Password=HashGenerator.EncodIngPassWithMD5(registe r.Password),
    RoleId=2


    };
    _user.AddUser(user);
    return RedirectToAction(nameof(Login));


    }
    }
    else
    {
    return View(register);
    }

    }

    کد ویو

    @model IdentityTest.ViewModel.RegisterViewModel



    <form asp-action="Register">


    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <div class="form-group">
    <label asp-for="Mobile" class="control-label"></label>
    <input asp-for="Mobile" class="form-control" , placeholder="شماره موبایل" />
    <span asp-validation-for="Mobile" class="text-danger"></span>
    </div>
    <div class="form-group">
    <label asp-for="Password" class="control-label"></label>
    <input asp-for="Password" class="form-control" , placeholder="کلمه عبور" />
    <span asp-validation-for="Password" class="text-danger"></span>
    </div>
    <div class="form-group">
    @*<label asp-for="ConfirmPassword" class="control-label"></label>*@
    <input asp-for="ConfirmPassword" class="form-control" , placeholder="تأیید کلمه عبور" />
    <span asp-validation-for="ConfirmPassword" class="text-danger"></span>
    </div>
    <div class="form-group">
    <input type="submit" value="ساخت حساب" class="btn-red pull-right" />
    <a asp-action="Login" class="btn-red pull-left">وارد شوید</a>
    </div>
    </form>
    ویومدل:

    public class RegisterViewModel
    {
    [Display(Name = "شماره همراه:")]
    [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
    [MaxLength(11, ErrorMessage = "مقدار {0} نمی تواند بیشتر از {1} باشد")]
    public string Mobile { get; set; }
    //
    [Display(Name = "رمز عبور:")]
    [MaxLength(50, ErrorMessage = "مقدار {0} نمی تواند بیشتر از {1} باشد")]
    [DataType(DataType.Password)]
    public string Password { get; set; }


    //
    [Display(Name = "رمز عبور:")]
    [MaxLength(50, ErrorMessage = "مقدار {0} نمی تواند بیشتر از {1} باشد")]
    [DataType(DataType.Password)]
    [Compare("Password",ErrorMessage ="کلمه عبور باید یکسان باشد")]
    public string ConfirmPassword { get; set; }




    }



    بعد از کلیک روی دکمه submit وارد اکشن register میشه که هیچ پارامتر ورودی نداره.
    در صورتی که باید وارد اکشن registerی که پارامتر ویومدلو داره بشه.
    و تو adress bar هم فقط یک ؟ اضاف میشه
    لطفا راهنمایی کنید.

  2. #2

    نقل قول: خطا در ارسال مدل به اکشن

    سلام دوست عزیز ، برای متد اول [httpGet] رو ست کنید و دوم اینکه توی ویو شما برای تگ فرم باید method رو برابر post قرار بدید...

    [HttpGet]
    public IactionResult Register
    }
    return view
    {


    <form asp-action="register method="
    Post"">

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •