ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 13
  1. #1
    تاریخ عضویت
    2019/08/27
    نوشته ها
    9
    0
    Junior Member

    Exclamation برقراری ارتباط metadata با کلاس مربوط به آن

    سلام
    یک پروژه را به روش database first دارم انجام میدم. برای attribute دادن به property های یک کلاس، یک کلاس metadata از آن ساختم اما هنگام اجرا هیچ کدام از attribute ها عمل نمی کنند.
    ممکنه راهنمایی کنید
  2. #2
    تاریخ عضویت
    2017/11/22
    نوشته ها
    216
    154
    Moderator
    سلام...اگه می تونید کدهای مربوط به مواردی که گفتین و نوع پروژه تون (ASP.NET MVC، WPF، WinForms و ...) رو اینجا قرار بدین تا بررسی شه.
  3. #3
    تاریخ عضویت
    2019/08/27
    نوشته ها
    9
    0
    Junior Member
    سلام
    نوع پروژه asp.net mvc
    Metadata:
    namespace MVC_DBFirsta.Models.Domins
    {
    internal class MetaDataUser
    {
    [Key]
    public int UseId { get; set; }
    [StringLength(100, ErrorMessage = "مقدار وارد شده بیش 100 کارکتراست")]
    [Display(Name = "نام و نام خانوادگی")]
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    public string UserFullName { get; set; }
    [StringLength(100, ErrorMessage = "مقدار وارد شده بیش 100 کارکتراست")]
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    [System.Web.Mvc.Remote("UsernameValid", "Register", HttpMethod = "Post")]
    [Display(Name = "نام کاربری")]
    public string UserName { get; set; }
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    [Display(Name = "پست الکترونیکی")]
    [StringLength(200, ErrorMessage = "مقدار وارد شده بیش 200 کارکتراست")]
    [Remote("EmailValid", "Register", HttpMethod = "Post")]
    public string UserEmail { get; set; }
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    [Display(Name = "کلمه عبور")]
    [StringLength(100, ErrorMessage = "مقدار وارد شده بیش 100 کارکتراست")]
    public string UserPassword { get; set; }
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    [Display(Name = "آدرس پستی")]
    [StringLength(100, ErrorMessage = "مقدار وارد شده بیش 100 کارکتراست")]
    public string UserAddress { get; set; }
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    [Display(Name = "شهر محل سکونت")]
    [StringLength(100, ErrorMessage = "مقدار وارد شده بیش 100 کارکتراست")]
    public string UserCity { get; set; }
    [Display(Name = "کد پستی")]
    [StringLength(10, ErrorMessage = "مقدار وارد شده بیش 10 کارکتراست")]
    public string UserPostalcode { get; set; }
    [Display(Name = "تلفن منزل")]
    [StringLength(11, ErrorMessage = "مقدار وارد شده بیش 11 کارکتراست")]
    public string UserTel { get; set; }
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    [Display(Name = "شماره همراه")]
    [StringLength(11, ErrorMessage = "مقدار وارد شده بیش 11 کارکتراست")]
    public string UserMobile { get; set; }
    [Display(Name = "تاریخ ثبت نام")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "0:yyyy/mm/dd")]
    public System.DateTime UserRegistrationDate { get; set; }
    [Display(Name = "وضعیت دسترسی")]
    public bool IsUserActive { get; set; }
    [Display(Name = "امتیاز کاربری")]
    public string UserRate { get; set; }
    [Display(Name = "وضعیت کاربری")]
    public int RoleId { get; set; }
    [Display(Name = "کد ملی")]
    [StringLength(10, ErrorMessage = "مقدار وارد شده بیش 10 کارکتراست")]
    [Required(AllowEmptyStrings = false, ErrorMessage = "لطفا مقدار را وارد نمایید")]
    [Remote("NationalCodeValid", "Register", HttpMethod = "Post")]
    public string UserNationalCode { get; set; }
    [Display(Name = "استان")]
    public int ProvinceId { get; set; }
    }
    [MetadataType(typeof(MetaDataUser))]
    public partial class User
    {
    }
    -}
  4. #4
    تاریخ عضویت
    2019/08/27
    نوشته ها
    9
    0
    Junior Member
    کد RegisterView <h1 class='separator page_title'>فرم ثبت نام </h1>

    @using (Html.BeginForm("Register", "Register", FormMethod.Post, new { @class = "frm_register", @id = "frm_register" }))
    {
    @Html.AntiForgeryToken()

    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div>
    <div>
    @Html.LabelFor(model => model.UserFullName, htmlAttributes: new { })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserFullName, new { @class = "txtbox", @placeholder = "نام و نام خانوادگی ", name = "namefamily" })
    @Html.ValidationMessageFor(model => model.UserFullName, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserName, htmlAttributes: new { @class = "" })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserName, new { @class = "txtbox", @placeholder = "نام کاربری ", name = "username" })
    @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserEmail, htmlAttributes: new { @class = "" })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserEmail, new { @class = "txtbox", @placeholder = "ایمیل ", name = "email" })
    @Html.ValidationMessageFor(model => model.UserEmail, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserPassword, htmlAttributes: new { @class = "" })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserPassword, new { @class = "txtbox", @placeholder = "رمز عبور ", name = "password" })
    @Html.ValidationMessageFor(model => model.UserPassword, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserMobile, htmlAttributes: new { @class = "" })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserMobile, new { @class = "txtbox", @placeholder = "تلفن همراه ", name = "mobile" })
    @Html.ValidationMessageFor(model => model.UserMobile, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserAddress, htmlAttributes: new { @class = "" })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserAddress, new { @class = "txtbox", @placeholder = "ادرس منزل ", name = "address" })
    @Html.ValidationMessageFor(model => model.UserAddress, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserNationalCode, htmlAttributes: new { @class = "" })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserNationalCode, new { @class = "txtbox", @placeholder = "کد ملی ", name = "natcode" })
    @Html.ValidationMessageFor(model => model.UserNationalCode, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserCity, htmlAttributes: new { @class = "" })
    <i class="fa fa-star"> </i>
    @Html.TextBoxFor(model => model.UserCity, new { @class = "txtbox", @placeholder = " شهر سکونت", name = "city" })
    @Html.ValidationMessageFor(model => model.UserCity, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserTel, htmlAttributes: new { @class = "" })
    @Html.TextBoxFor(model => model.UserTel, new { @style = "",@class = "txtbox", @placeholder = "تلفن منزل ", name = "phone" })
    @Html.ValidationMessageFor(model => model.UserTel, "", new { @class = "text-danger" })
    </div>
    <div>
    @Html.LabelFor(model => model.UserPostalcode, htmlAttributes: new { @class = "" })

    @Html.TextBoxFor(model => model.UserPostalcode, new { @style = "", @class = "txtbox", @placeholder = " کد پستی ", name = "postalcode" })
    @Html.ValidationMessageFor(model => model.UserPostalcode, "", new { @class = "text-danger" })
    </div>
    <div>
    <label>استان :</label>
    <select name="State" class="select">
    @{
    Rep_Register repProvice = new Rep_Register();
    foreach (var item in repProvice.GetProvince())
    {
    <option value="@item.ProvinceId">@item.ProvinceName</option>
    }
    }
    </select>
    </div>
    <div class='full'>
    <input type="submit" name='go_register' value="ثبت نام" class="threed_button">
    </div>
    </div>
    }
    --------------------------------------------------------------------------------------------------------------------------------------RegisterController: [HttpGet]
    public ActionResult Register()
    {
    if (Session["User"] != null)
    {
    return RedirectToAction("Profile", "Profile");
    }
    else
    {
    return View();
    }
    }
    [HttpPost]
    public ActionResult Register(User u, int ProvinceId)
    {
    if (Session["User"] == null)
    {
    User Ouser = new User();
    Ouser.UserAddress = u.UserAddress;
    Ouser.UserCity = u.UserCity;
    Ouser.UserEmail = u.UserEmail;
    Ouser.UserEmail = u.UserFullName;
    Ouser.UserFullName = u.UserMobile;
    Ouser.UserMobile = u.UserName;
    Ouser.UserNationalCode = u.UserNationalCode;
    Ouser.UserPassword = u.UserPassword;
    Ouser.UserPostalcode = u.UserPostalcode;
    Ouser.UserRate = "0";
    Ouser.UserRegistrationDate = System.DateTime.Now;
    Ouser.UserTel = u.UserTel;
    Ouser.RoleId = 0;
    Ouser.ProvinceId = ProvinceId;
    Ouser.IsUserActive = false;
    db.Users.Add(Ouser);
    if (Convert.ToBoolean(db.SaveChanges() > 0))
    {
    TempData["Message"] = ".ثبت نام شما با موفقیت انجام شد. لطفا به ایمیل خود مراجعه و روی لینک تایید کلیک نمایید";
    EmailConfirmtion ec = new EmailConfirmtion();
    ec.EmailConfirmationCreationDate = DateTime.Now;
    ec.EmailConfirmationIsConfirmed = false;
    ec.UserId = db.Users.OrderByDescending(c => c.UseId).FirstOrDefault().UseId;
    db.EmailConfirmtions.Add(ec);
    db.SaveChanges();
    Email email = new Email();
    email.SendEmail(db.Settings.FirstOrDefault().SMTP, db.Settings.FirstOrDefault().SettingEmail, db.Settings.FirstOrDefault().SettingPassword, Ouser.UserEmail, "فعالسازی حساب کاربری",
    "کاربر گرامی " + u.UserName + "</br> برای فعالسازی اکانت کاربری خود در سایت " + db.Settings.FirstOrDefault().SettingSiteTitle +
    " روی لینک زیر کلیک کنید </br> <a href='http://localhost:29703/Register/EmailConfirmation?Code=" + db.EmailConfirmtions.OrderByDescending(a => a.EmailConfirmationId).FirstOrDefault().EmailConfi rmationId + "'> لینک فعالسازی</a>");
    return RedirectToAction("Message");
    }
    else
    {
    TempData["Message"] = "NotAdded";
    return RedirectToAction("Message");
    }
    }
    else
    {
    return RedirectToAction("Profile", "Profile");
    }
    } یک مشکل دیگر هم در رابطه با همین کد ها دارم، وقتی ازاطلاعات را در صفحه ثبت نام وارد می کنم علاوه و دکمه ثبت را می زنم با اروری مواجه می شن که ProvinceId نمی تونه null باشه در صورتیکه جدول مربوط به استان پرشده و استان را انتخاب می کنم
  5. #5
    تاریخ عضویت
    2017/11/22
    نوشته ها
    216
    154
    Moderator
    لطفا کدها رو تو یک فایل زیپ اپلود کنید....اینطوری نمیشه چیزی فهمید
  6. #6
    تاریخ عضویت
    2019/08/27
    نوشته ها
    9
    0
    Junior Member
    :کد های مربوطه

    New folder
  7. #7
    تاریخ عضویت
    2017/11/22
    نوشته ها
    216
    154
    Moderator
    تو کلاس MetaDataUser به جای UserId نوشتین UseId اونو اصلاح کنید...ببینید کار میکنه
    ویرایش توسط AmRo : 2019/08/29 در ساعت 11:29
  8. #8
    تاریخ عضویت
    2019/08/27
    نوشته ها
    9
    0
    Junior Member
    <p>
    نه مشکل از اون نیست .متاسقانه تو دیتابیس و کلاس user هم بخاطر اشتباه تایپ useId نوشتم</p>
    ویرایش توسط Parastoo : 2019/08/29 در ساعت 14:25
  9. #9
    تاریخ عضویت
    2017/11/22
    نوشته ها
    216
    154
    Moderator
    تو کد بخشی که خطا های مربوط به metadata ها رو هندل کنه..پیدا نکردم...این بخشو نوشتن یا نه؟
    بعد موقع اجرای دستور saveChanges خطا میده؟؟؟
  10. #10
    تاریخ عضویت
    2019/08/27
    نوشته ها
    9
    0
    Junior Member
    نقل قول نوشته اصلی توسط AmRo نمایش پست ها
    تو کد بخشی که خطا های مربوط به metadata ها رو هندل کنه..پیدا نکردم...این بخشو نوشتن یا نه؟ بعد موقع اجرای دستور saveChanges خطا میده؟؟؟
    برای هندل کردن خطا های metadata چیزی ننوشتم. نمی دونم چی بنویسم
    در مورد سوال دوم : وقتی تو فرم ثبت نام اطلاعات را وارد می کنم به محض کلیک روی دکمه ثبت خطا میده . روی متد مربوطه break point گذاشتم .اصلا به آنجا نمیرسه .
    http://s4.picofile.com/file/8370875242/error.png
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 13

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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