mvc

pedram norozi
29 مهر ۱۴۰۰
سلام و عرض ادب اقای اشرافی عزیز. من تازه از لاراول به asp قوچ کردم و دو چیز رو نمیتونم درک کنم : اول اینکه فرض کنیم میخوایم category ها رو داینامیک کنیم , وقتی بخش index رو میخوایم تکمیل کنیم توی کنترلر بهش میگیم مدل ویو چی باشه مثلا لیستی از کتگوری ها , ولی وقتی میخوایم بخش add رو تکمیل کنیم , توی کنترلر مدلش رو مشخص نمیکنیم . چرا ؟ چطور asp میفهمه ؟ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- سوال دومم: توی لاراول وقتی قرار بود یه مقداری رو از ویو به کنترلر بفرستیم باید تو ویو مشخص میکردیم مثلا میخوایم یه تگ a رو بفرستیم به اکشن index و مقدار id هم با خودش ببره , توی لاراول :href=action(index , id) اما توی asp اینکارو نمیکنیم و فقط تو کنترلر میگیم id هم دریافت کن و تگه متد پست باشه خودش دریافت مینکنه خود به خود !!!!!! چطور کار میکنه ؟ ببخشید سوال طولانی شده.
282

1 پاسخ
  • محمد اشرافی29 مهر ۱۴۰۰

    سلام شب اتون بخیر باشه 

     1 - ما توی View مشخص میکنیم که مدل این View اینی ه که گذاشتیم مثلا توی View افرودن گروه میگیم مدل تو CreateCategoryViewModel هست و اگر توی Controller یه مدل با این جنس براش ارسال کنیم مقادیرش پر میشه و اگر چیزی براش ارسال نکنیم مدل اش Null ه ، و این مدل Null به چه درد ما می خوره ؟ 

    به این درد می خوره که سمت View به ما Intelisens میده تا Input هامون رو راحت بسازیم و دیتایی که ارسال می کنیم سمت سرور هم از همین جنس می تونه باشه ، در واقع با TagHelper ها میاد name و id به input ها میده

    2 - ببینید توی RazorPage اگر Form ای داشته باشیم که action بهش نداده باشیم به صورت پیشفرض action اش میشه همین صفحه جاری که الان توش هستیم ، ولی برای تگ a به این شکل نیست یا می تونید href بهش بدین یا از TagHelper ها استفاده کنید مثلا اون مثالی که شما توی php زدید توی asp به این شکل میشه : 

    href="@Url.Action("Index","Home",new {id=1})"

    یا 

    asp-controller="Home" asp-action="Index" asp-route-id="1"

    یا توی RazorPage :

    asp-page="Index" asp-route-id="1"

    اگر جوابتون رو نگرفتید لطفا سوالتون رو به یه شکل دیگه بپرسید تا دقیق تر متوجه شم