PDA

View Full Version : QueryString در Mvc



zahra313
یک شنبه 12 شهریور 1396, 13:34 عصر
سلام من تو صفحه اولم یه تگ a دارم که وقتی میزنم روش میخوام بره تو یه ویو دیگه و جزییات رو نشون بده؛ ولی نمیدونم چرا ارر میده و مقدار رو Null میخونه.
کد هام ایناس.


<a href="DetaileService/@item.ServiceID">
<img src="../../images/Service/@item.Image" alt="Special Offer" />
<span class="hover-effect">
<i class="icon-link"></i>
</span>
</a>



و د رکلاسم این کد رو دارم:

public static DetaileServiceVM DetaileService(int ID)
{
using (TourismEntities db = new TourismEntities())
{
var Details = db.Database.SqlQuery<DetaileServiceVM>(@"Sp_Select_DetaileService @ServiceID",
new SqlParameter("@ServiceID", ID)).FirstOrDefault();
return Details;
}

و دربالای view جزییات هم اینو نوشتم:

@{
int a = int.Parse(Request.QueryString["ID"].ToString());
Tourism.Class.VM.DetaileServiceVM DetailService =
Tourism.Class.BLL.DefaultPageBLL.DetaileService(a) ;
}

Moien Tajik
یک شنبه 12 شهریور 1396, 19:21 عصر
<a href="DetaileService/@item.ServiceID">
<img src="../../images/Service/@item.Image" alt="Special Offer" />
<span class="hover-effect">
<i class="icon-link"></i>
</span>
</a>

شما بدرستی پارامتر رو داخل url در href تعریف نکردید ، همچین شکلی میشه : DetailsService?ID=@item.ServiceID
راه راحتتر این هست که داخل href از Url.Action استفاده کنید : https://stackoverflow.com/a/19110921/6661314

zahra313
یک شنبه 12 شهریور 1396, 20:08 عصر
خیلی ممنون بابت پاسختون ولی مشکل اینجا نیست.ID رو میفرسته ولی توی ویو مقصد نمیفهمه.... ببینید خطام اینه:

146204

Moien Tajik
یک شنبه 12 شهریور 1396, 20:54 عصر
چرا داخل اکشن ، آیدی رو نمیگیرید و داخل یک Viewbag بریزیدش و پاسش بدید به ویو ؟

zahra313
یک شنبه 12 شهریور 1396, 21:08 عصر
همین کار رو هم انجام دادم ولی هیچ تغییری نکرد و بازم ارر داد

Moien Tajik
دوشنبه 13 شهریور 1396, 09:50 صبح
کدتون رو دیباگ کنید ببینید مقدار ID دریافتی در اکشن چی هست و امکان Cast اون به Int هست یا خیر .

moslem.hady
دوشنبه 13 شهریور 1396, 12:06 عصر
شما کد رو با query string نمیفرستید که!! دارید با route میفرستید.

var id = ViewContext.RouteData.Values["id"];