ASP.Net MVC - الإجراء اللاحق لتعبير lambda المساعد
سؤال
لقد قمت بإنشاء طريقة المساعد هذه باستخدام تعبير lambda لاستخدام مساعد الكتابة بقوة في طريقة العرض
المساعد
public static string DateFor<TModel, TDate>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TDate>> expression)
{
ModelMetadata data = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
StringBuilder sb = new StringBuilder();
...
//code that creates three dropdownlist (day, month and year)
...
}
منظر
<%= Html.LabelFor(model => model.DataNascita) %>
مراقب
[HttpPost]
public ActionResult Edit(int id, Account MyAccount)
{
...
return View(...);
}
مشكلتي هي أن MyAccount.DataNascita لم يتم تعيينه بالقيمة التي اخترتها في نموذج التحرير (قيمة التاريخ الدنيا..السابق.1900/01/01).
كيفية ربطه في إجراء تحرير النشر؟
المحلول
أعتقد أن ما تفضله بعد هو مصمم مخصص يقوم بتحليل البيانات المنشورة الواردة وتحويله إلى حالة من تاريخ النموذج الخاص بك.
نصائح أخرى
من وجهة نظرك، أنت تقول أنك تقوم بإخراج ملف ملصق لشيء ما، ولكن سؤالك يتعلق بسبب عدم الاحتفاظ بالقيمة نشر.
أعتقد أنك بحاجة إلى أن تقول ذلك على الأقل Html.EditorFor(...)
, ، لكن ربما تريد استخدام الطريقة المساعدة التي كتبتها:
<%: Html.DateFor(model => model.DataNascita) %>
ومع ذلك، فمن المستحيل أن نقول بالضبط ما يحدث هنا دون معرفة نوع بيانات الملف DataNascita
الملكية على النموذج.
أقترح عليك استخدام jQuery datepicker .
يمكنك تخصيصها مع jquery themeroller .