Monthly Archives: May 2012

Html.EditorFor, Model Property vs RouteData Value

The ASP.NET MVC team made our lives easier when they created the Html editor extension method Html.EditoFor(); you just pass the model property and it creates the right editor, filling it with the property’s value…but not always!

Let’s consider that we have the conventional route definition:

routes.MapRoute(

                "Default", // Route name

                "{controller}/{action}/{id}", // URL with parameters

                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults

            );

and this simple action method:

public ActionResult MyAction(int? id)

{

    var result = new Person() { Id = 3, Name = "My Name" };

 

    return View(result);

}

and this form view:

@using (Html.BeginForm())

{

    @Html.EditorFor( m => m.Id )

    <br />

    @Html.EditorFor( m => m.Name )

    <br />

    <input type="submit" value="Submit" />

}

If you have noticed, in the action method “MyAction” I didn’t make use of the passed “id” parameter; I know this is a rare case, but maybe for a rare business scenario you want to return a very similar model rather than the requested one. In our case we will return the model with the id = 3 no matter what, just for the sake of the argument.

Now if you call for the request “http://localhost:2085/MyController/MyAction” everything works as expected, and you will have the following view result:

CropperCapture[5] 

But if  you call for the request “http://localhost:2085/MyController/MyAction/5”, the result will be:

CropperCapture[6]

As you have noticed, the Html.EditorFor ignored the value of the property “id” in the model, and instead used the RouteData value of the key “id” passed through the URL.

Most likely this is by design; I can’t think of how a bug in the code could produce this. But according to how I see things, this can be really confusing; I should be expecting the value of the property I passed instead of the routedata value.

What do YOU think?

ثلاثاء عمان التقني – الذكرى الثانية

548151_10150784486075210_599395209_11585084_1539081719_nثلاثاء عمان التقني لمن لا يعرفه هو لقاء تقني يعقد كل أول يوم ثلاثاء من كل شهر، يتناول مواضيع مختلفة في كل مرة تحوم كلها حول التقنية و استخداماتها، يتم فيه استضافة متخصصين في موضوع تقني معين يطرحون آراءهم في أهم المستجدات في الموضوع المختار أمام جمهور كبير من المتحمسين. يقوده طليعة من الشباب الفطن الجاد.

و صادف الثلاثاء الماضي الذكرى الثانية لثلاثاء عمان التقني، الذي أقاموا فيه معرضا للشركات الناشئة، و الذي كنت من المحظوظين بزيارته.
بصراحة لم أكن أتوقع ما رأيت؛ أكشاك متراصة لشركات ناشئة ذات حماس منقطع النظير! و لم يكن الحماس فقط ما ميزها، بل المستوى العالي من الاحترافية في منتجاتهم و خدماتهم –لأغلبها- و وضوح الرؤية، و بعد النظر، و إدراك السوق، و استيعاب فكرة التميز عن الأخرين في خصائص الخدمات، و قدرتهم على عرضها بشكل غير تقليدي و بجاذبية ملفتة للنظر.بالإضافة لبعض الأفكار الإلكتورنية الملموسة مثل “مجس الغاز” (تعريبي الخاص) و التحكم بالآلة من خلال Kinect.
فاجأني كل هذا و شعرت بفخر و أمل كبيرين.

كنت أمر على الكشك و أستعرض خدمة الشركة الناشئة و ما تقدم، و من ثم أبادر بأسئلة أتحدى فيها وجودهم مثل : “كيف تتميزون عن غيركم و هناك من يعرض خدماتكم نفسها؟ ماذا لو كنت زبونا عندكم و حصل معي كذا، كيف تستجيبون لمثل هذا الإشكال؟ كيف أضمن جودة خدماتكم؟ ما هي خطوتكم التالية و ما هي رؤيتكم؟” و في المعظم كانت أجوبة متينة بالنسبة لشركة ناشئة، تظهر مدى تمسكهم و جديتهم بالاستمرار و النجاح.

و لكن لا بد أيضا من سرد بعض الملاحظات و النصائح، و ها هي قائمتي:

  1. كان هناك أكشاك فارغة بأسماء شركات ناشئة لم تستغل فرصتها و لم تحضر المعرض، أضاعوا فرصة كبيرة لتسويق خدماتهم و شركاتهم، و أضاعوا الفرصة على غيرهم، و يشكك هذا بقدرتهم أصلا على إنتاج خدمات يستطيع الزبائن الثقة بها و الاعتماد عليها
  2. إذا كنت صاحب كشك في معرض، لا تنتظر أن يتقدم أحدهم فيسأل، بادر أنت باستضافته، أظهر له الحماسة و الاهتمام به؛ إذا لم تكن مهتما و أنت صاحب الفكرة، فهل سيهتم عابر سبيل؟ رأيت أثر هذا علي مباشرة و أنا أمشي بين الأكشاك
  3. إذا كنت صاحب كشك في معرض، لا تجعل بينك و بين الزوار حاجزا كطاولة مثلا، فأنت “مع” الزائر “أمام” المنتج، أنت في صفه و حليفه، و لست في الطرف الآخر، يبدو أمرا سخيفا لكن في الواقع له أهمية نفسية كبيرة
  4. الألوان و التصاميم الجذابة تزداد أهمية يوما بعد يوم، و أثرها جد واضح في تكاثر الناس حولها. ابتعد عن التصاميم “الصلبة” التقليدية للشركات الكبرى، الآن عصر “الكاجوال” نوعا ما، لكن باتزان Smile
  5. من الأفضل أن تستثمر قليلا بالأوراق الدعائية، طباعة ذات جودة جيدة مع ألوان أفضل بكثير من A4 أبيض و أسود
  6. استخدام الأفكار الجديدة في جلب الانتباه أمر جميل، لكن احذر من أن تكون مخترفة للخصوصية، أو مبهمة بحيت يتردد الزائر من الاشتراك فيها، فلن أقف لأتصور و أنا أرسم رسمة لا أفهم المغزى من رسمي لها دون أن تشرح لي (اسحب ورقة وارسمها) لماذا؟ كيف سيفيد هذا في دعايتكم و تعريفنا بكم و بخدمتكم؟
  7. أنت لست بائعا متجولا، لا تختر طريقة عرض رتيبة و بكلمات مصطنعة مرتبة، كن تلقائيا و لتكن كلماتك من القلب، بعضهم نجح في ذلك حتى أنني وجدت أنه من اللائق أن أغادر كشكهم لأني أخذت من وقتهم و من وقت المهتمين الأخرين، لم أرد أترك المكان بسهولة
  8. و أخيرا إذا كنت زائرا لمعرض، فاعلم أن وقتك ثمين، وستتعب من المشي، و حضر نفسك لحمل الكثير من الأوراق الداعئية التي ستثقل كاهلك

شكرا للقائمين على ثلاثاء عمان التقني، أبدعتم كالعادة و أكدتم أن الشباب العربي لديه القدرة، و الحماسة، و التصميم على إنتاج خدمات و شركات ذات جودة و رؤية ناضجة. شكرا شكرا.

ملاحظة 1: في اللحظة التي سأحصل فيها على قائمة المشاركين سأجدد هذه التدوينة و أدرجها فيها، على كل حال الصورة في الأسفل تظهر بعضها

ملاحظة 2: للأسف لم يتسن لي التقاط صور للمعرض، فسأكتفي بهذه الصورة التي تعرض بعض الأوراق الدعائية منه.

fliers