PDA

View Full Version : مبتدی: مشکل در درج فیلدهای خاص از MetaData



baran girl
چهارشنبه 30 مرداد 1398, 20:02 عصر
سلام دوستان من برای جدول کاربران سایت فیلدهایی مثل تکرار پسورد و کد امنیتی را توی کلاس metadata الحاق کردم الان مشکلی که دارم
اگه بخوام اطلاعات کاربرم را ویرایش کنم ولیدیشن پسورد و تکرار پسورد و کد امنیتی بهم اجازه نمیده
دوم اینکه تا این فیلدها پر نشن اجازه درج ندارم
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Editprofile(User user)
{

ModelState.Remove("Password");
ModelState.Remove("Username");
ModelState.Remove("ConfirmPassword");
ModelState.Remove("CaptchaInputText");

if (ModelState.IsValid)
{
int id = Convert.ToInt32(RouteData.Values["id"].ToString());
var result = blUser.Find(id);
if (result != null)
{
result.Name = user.Name;
result.Family = user.Family;
result.CodeMeli = user.CodeMeli;
result.Tell = user.Tell;
result.Mobile = user.Mobile;
result.Grade = user.Grade;
result.ConfirmPassword = result.Password;

if (blUser.Update(result))
{
return MessageBox.Show("اطلاعات شما با موفقیت ویرایش شد", MessageType.Success);
}
else
{
return MessageBox.Show("اطلاعات شما با موفقیت ویرایش نشد", MessageType.Error);
}
}
return View(result);
}
else
{
return MessageBox.Show(ModelState.GetErrors(), MessageType.Warning);
}
}

baran girl
چهارشنبه 30 مرداد 1398, 20:05 عصر
یعنی نمیدونم چطوری فیلدهای خاصی از جدول رو ویرایش کنم
public bool Update(Medical_Science.Models.DomainModels.User entity, bool autoSave = true)
{
try
{
db.Users.Attach(entity);
db.Entry(entity).State = System.Data.Entity.EntityState.Modified;
if (autoSave)
return Convert.ToBoolean(db.SaveChanges());
else
return false;
}
catch
{
return false;
}

}


اینم ریپوزیتوری ویرایش کاربر

baran girl
چهارشنبه 30 مرداد 1398, 21:24 عصر
دوستان کسی نبود راهنماییم کنه:گریه:

baran girl
پنج شنبه 31 مرداد 1398, 11:15 صبح
دوستان کارم گیره ممنون میشم راهنمایی کنید کلی هم سرچ زدم به جواب نرسیدم

nunegandom
جمعه 01 شهریور 1398, 00:44 صبح
سلام
از ViewModel ها استفاده کنید
یعنی یک مدل میسازید که مثلا : Password و ConfirmPassword داخلشه
بعد همون رو Bind میکنید و Validation همونو چک میکنید
بعد هم میذارید داخل مدل دیتابیس و آپدیت میکنید

fakhravari
جمعه 01 شهریور 1398, 11:30 صبح
MetaData به خود شی جدول وصل نکنید هر صفحه سناریو یه ویو مدل خاص درست کنید.

baran girl
جمعه 01 شهریور 1398, 12:33 عصر
ببخشید متوجه نشدم میشه یه مثال بزنید

baran girl
شنبه 02 شهریور 1398, 16:02 عصر
دوستان من هنوز مشکلم برطرف نشده با وجود ویو مدل تا همه فیلدها رو پر نکنم اجازه ویرایش نمیده... خواهش میکنم کمکم کنید

nunegandom
یک شنبه 03 شهریور 1398, 18:35 عصر
یه همچین چیزی میشه تبدیل ویو مدل و مدل و استفاده کردن ازش بخش کنترلر

public class RegisterViewModel{
[required]
public string username {get;set;}
[required]
public string password {get;set;}
}
var userIdentityModel = new ApplicationUser
{
Username = viewmodel.username ,
Password = viewmodel.password
}
user.GenerateNewUser(userIdentityModel);
db.saveChanges();

اگر ارور دارید موقع ثبت کاربر، نگاه کنید ببینید پروپرتی اجباری چیزی اضافه کردید شاید که البته اررور اش رو میتونید ببینید چیه