سؤال

هناك الكثير من الأمثلة للنموذج الملزم في نماذج HTML، لكنني أتساءل عما إذا كان ذلك ممكنا، وإذا كان الأمر كذلك، فهذا كيفية استخدام نموذج ملزم لطلبات ActionSlinks / الحصول على طلبات.

لذلك، بالنظر إلى النموذج التالي

public class Lurl
{
  public string Str {get;set;}
  public char Chr {get;set;}
  public double Dbl {get;set;}
}

والمسار التالي (لست متأكدا من كيفية تشكيل هذا؛ أقدمها لإظهار كيف أود أن يعرض عنوان URL Strotes Str و Chr و DBL)

routes.MapRoute(
    "LurlRoute",
    "Main/Index/{str}/{chr}/{dbl}",
    new
    {
        controller = "Main",
        action = "Index",
        lurl = (Lurl)null
    }
);

أود استخدامه بهذه الطريقة في جهاز التحكم الخاص بي

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
  /* snip */
}

وهذه الطريقة في صفحتي (اثنين من الخيارات الممكنة؛ هل هناك المزيد؟)

<div class="links">
  <%Html.ActionLink("Link one", "Index", new { lurl = Model })%><br />
  <%Html.ActionLink("Link two", "Index", 
         new { str = Model.Str, chr = Model.Chr, dbl = Model.Dbl })%>
</div>

هل هذا ممكن مع البنية التحتية الملزمة النموذجية؟ وإذا كان الأمر كذلك، فما الذي يجب القيام به لعيناتي للحصول عليها؟

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

المحلول

أعتقد أنك سوف تضطر إلى اختيار فئة كهدوء معلمة

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
   /* snip */
}

أو خصائص نهج المعلمات

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(string str, char chr, double dbl)
{
    /* snip */
}

... رغم أنه في الفصل كهدوء معلمة، يمكنك استخدام طريقة "UpdateModel". يمكنك تمرير Whitelist of Parameters الذي تريد تحديثه بهذه الطريقة فقط في حال كنت ترغب فقط في تحديث بعض القيم في النموذج الخاص بك.

أيضا، في Maproute الخاص بك، ما هي المعلمة التي سوف LURL LORL في مسار الطريق الخاص بك؟ أنا متأكد من أنه يجب أن يكون هناك ارتباط واحد هناك.

نصائح أخرى

يمكنك أيضا استخدام نموذج الموثق مخصص. وبعد قرأت أيضا هذه.

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