سؤال

هل هناك نمط معين أن المطورين عموما تتبع ؟ أنا حقا لم أفكر كثيرا في تطبيقات الويب ، ولكن ASP.NET MVC محرك التوجيه حد كبير يفرض عليك على الأقل أن تأخذ ذلك في الاعتبار.

حتى الآن لقد أحببت تحكم/العمل/مؤشر هيكل (مثلا ، المنتجات/تحرير/1) ، ولكن أنا تكافح مع أكثر تعقيدا عناوين url.

على سبيل المثال, دعونا نقول لديك صفحة تسرد جميع المنتجات المستخدم في الاعتبار.كيف يمكنك أن تفعل ذلك ؟ قبالة الجزء العلوي من رأسي لا أستطيع التفكير في الاحتمالات التالية للحصول على قائمة صفحة تحرير الصفحة:

  1. المستخدم/{"معرف المستخدم"}/المنتجات/قائمة المستخدم/{"معرف المستخدم"}/المنتجات/تحرير/{معرف المنتج}
  2. المستخدم/{"معرف المستخدم"}/منتجات المستخدم/{"معرف المستخدم"}/المنتجات/{معرف المنتج}
  3. المنتجات ؟ UserID={"معرف المستخدم"}, المنتجات/تحرير/{معرف المنتج}

أنا متأكد من أن هناك الكثير من الآخرين أن أنا في عداد المفقودين.أي نصيحة ؟

هل كانت مفيدة؟

المحلول

أنا أحب راحة المستخدم ودية hackable عناوين url.

ماذا يعني هذا ؟ نبدأ مع المستخدم ودية عناوين المواقع.لي المستخدم ودية URL شيء من السهل نوع السهل أن نتذكر /Default.aspx?action=show&userID=140 لا تلبي أي من هذه المتطلبات.رابط مثل `/المستخدمين/troethom يبدو منطقيا على الرغم من.

هذا يقودنا إلى النقطة التالية.A hackable URL هو عنوان URL الذي يمكن للمستخدم تعديل ولا يزال الحصول على عرض النتيجة.إذا كان عنوان URL هو hackable و URL ملف التعريف الخاص بي هو /users/troethom سيكون من المأمون أن إزالة اسم المستخدم من الحصول على قائمة المستخدمين (/users).

باستخدام راحة عناوين المواقع جدا مماثلة إلى الأفكار وراء اقتراحات أخرى.كنت تصميم عناوين المستخدم و ليس آلة وبالتالي URL تتصل المحتوى وليس التقنية الخلفية من موقع الويب الخاص بك.URL as /المستخدمين أكثر منطقية من /المستخدمين/قائمة URL as /الفئة/برمجة/جافا سكريبت (تمثل الفئة الفرعية 'javascript' في فئة 'البرمجة' أفضل من /الفئة/إظهار/12.

هو في الواقع من الصعب حذف معرفات ، ولكن في بلدي العالم هو يستحق كل هذا الجهد.

أيضا استشارة فهم محددات القسم على W3Cs المشتركة HTTP مشاكل التنفيذ.أنه يحتوي على قائمة من الأخطاء الشائعة عند تصميم محددات.جيد آخر هو مورد الحيلة مقابل Hackable البحث عن عناوين.

نصائح أخرى

قد ترغب في إلقاء نظرة على هذا السؤال "ودية url المخطط ؟ ".

لا سيما ، لاري.Smithmier الجواب قدمت القائمة المشتركة مخططات URL عند استخدام MVC في ASP.NET.

أيضا ، قد تنظر في استخدام الأفعال المختلفة من إعادة استخدام نفس الطرق إجراءات مختلفة.على سبيل المثال ، الحصول على طلب "المنتجات/تحرير/45" عرض المنتج محرر ، في حين أن وظيفة على نفس رابط تحديث المنتج.يمكنك استخدام AcceptVerb السمة لإنجاز هذا:

[AcceptVerb("GET")]
public ActionResult Edit(int id)
{
    ViewData["Product"] = _products.Get(id);
    return View();
}

[AcceptVerb("POST")]
public ActionResult Edit(int id, string title, string description)
{
    _products.Update(id, title, description);
    TempData["Message"] = "Changes saved successfully!";

    return RedirectToAction("Edit", new { id });
}

بيل دي hÓra كتب جيدة جدا مقال بعنوان مورد ويب تعيين معايير الأطر التي تستحق القراءة.

إضافة إلى troethom تعليقات راحة عموما يعني أيضا أنه على سبيل المثال ، إنشاء مستخدم جديد يمكنك وضع تصوير /المستخدمين/newusername

راحة أساسا يستخدم 5 HTTP القياسية أساليب (الحصول على, وضع, بعد, حذف, الرأس) التحكم/الوصول إلى المحتوى.

حسنا, هذا ليس سهلا مستعرض ويب ، ولكن يمكنك دائما استخدام طاقتها وظيفة (وظيفة /المستخدمين/اسم المستخدم مع تمثيل المستخدم من تغيير بعض التفاصيل ، إلخ.

في وسيلة جيدة للقيام بهذه الأمور ، أود أن أوصي القراءة خدمات الويب مريحة للحصول على فهم أفضل :D (و هو الرتق كتاب جيد!)

رأيت اثنين من أهم الطرق المقبولة الاقتراب من هذا الموضوع...

واحد هو موضح في MvcContrib وثائق المشروع

والآخر هو موضح في بلوق وظيفة من قبل ستيفن فالتر (والتي أنا شخصيا أفضل).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top