ورود

View Full Version : مبتدی: مشکل در مقایسه !



phpphp7
چهارشنبه 02 دی 1394, 23:17 عصر
سلام

یک قطعه کدی به صورت زیر است :



public ActionResult AdvanceSearch(string Title, string FullTxt, DateTime FirstDate, DateTime LastDate, string NewsType)
{

var q = (from a in db.Tbl_News
where ((a.Title.Contains(Title))
&& (a.FullText.Contains(FullTxt))
&& (a.Type.Equals(NewsType))
&& ((a.Date >= FirstDate ) && (a.Date <= LastDate)))
select a).ToList();



return PartialView("P_Search",q.AsEnumerable());

}


عکس

http://up.vbiran.ir/uploads/39107145081723517184_search.png

مشکل من در "تاریخ" هست !!

میخوام تمامی فیلد ها اختیاری باشند اما در برنامه بالا ، حتما باید تاریخ ها رو تکمیل کنم تا برنامه کار کنه ! یعنی "عنوان" و "متن کامل" و " نوع خبر" مشکلی ندارند و اگه یکیشون هم پر بشه برنامه کار میکنه !! اما تاریخ ها باید جفت فیلد ها مقدار داشته باشند !


برای حل این مشکل باید چیکار کنم؟

mze666
پنج شنبه 03 دی 1394, 07:23 صبح
به جای DateTime از DateTime? (نالیبل) توی پارامترهای اکشنتون استفاده کنید.

phpphp7
پنج شنبه 03 دی 1394, 10:22 صبح
به جای DateTime از DateTime? (نالیبل) توی پارامترهای اکشنتون استفاده کنید.
سلام
از این روش شما هم استفاده کردم اما نشد

مهدی کرامتی
پنج شنبه 03 دی 1394, 11:46 صبح
بهتره یک کلاس ViewModel تعریف کنید که حاوی فیلدهای مورد نظرتون در فرم فوق باشه، سپس روی فیلدهای تاریخ تون با صفت Required شرط Validation تعریف کنید. در ورودی متد فوق هم به جای گرفتن تک تک فیلدها یک object از جنس کلاس خودتون دریافت کنید. در این حالت با استفاده از دستور if(ModelState.IsValid) می توانید متوجه شوید که مقدار برای فیلد مورد نظر وارد شده یا نه.
مشابه چیزی که گفتم رو می توانید در کنترلرهایی که خود Mvc پس از Scaffolding می سازد مشاهده کنید.

phpphp7
پنج شنبه 03 دی 1394, 12:37 عصر
بهتره یک کلاس ViewModel تعریف کنید که حاوی فیلدهای مورد نظرتون در فرم فوق باشه، سپس روی فیلدهای تاریخ تون با صفت Required شرط Validation تعریف کنید. در ورودی متد فوق هم به جای گرفتن تک تک فیلدها یک object از جنس کلاس خودتون دریافت کنید. در این حالت با استفاده از دستور if(ModelState.IsValid) می توانید متوجه شوید که مقدار برای فیلد مورد نظر وارد شده یا نه.
مشابه چیزی که گفتم رو می توانید در کنترلرهایی که خود Mvc پس از Scaffolding می سازد مشاهده کنید.

سلام و متشکرم بابت توضیحات شما

اما دقیقا متوجه منظور شما نشدم.

من نمیخوام پر کردن فیلد ها اجباری باشه. میخوام که اگه 1 فیلد یا چند فیلد پر بشه ، برنامه اجرا بشه