سؤال

وقد حاول أي شخص ASP.NET MVC باستخدام IronPython?بعد أن فعلت الكثير من بيثون التنمية في الآونة الأخيرة ، سيكون من الجميل أن تستمر مع اللغة كما ذهبت إلى ASP.NET MVC المشروع.

انا مهتمة بصفة خاصة في استغلال الجوانب الحيوية من الثعبان .صافي ميزات مثل LINQ و أريد أن أعرف إذا كان هذا لن يكون ممكنا.الطريق الآخر التي قد تكون قابلة للتطبيق على بعض البرمجة الديناميكية سيكون C# 4.0 مع dynamic الكلمات الرئيسية.

الأفكار التجارب ؟

نصائح أخرى

باستخدام IronPython في ASP.NET MVC: http://www.codevoyeur.com/Articles/Tags/ironpython.aspx

هذه الصفحة تحتوي على المواد التالية:

  • بسيطة IronPython ControllerFactory على ASP.NET MVC
  • بسيطة IronPython ActionFilter على ASP.NET MVC
  • بسيطة IronPython مسار معين عن ASP.NET MVC
  • غير مزعجة IronPython ViewEngine على ASP.NET MVC

وأنا أعمل حاليا على هذا. وهو يدعم بالفعل الكثير من الأشياء: https://github.com/simplic-systems/ironpython -aspnet-MVC

ومزيد من المعلومات حول هذا:

واستيراد وحدة aspnet

import aspnet

ويمكنك كتابة تحكم بنفسك

class HomeController(aspnet.Controller):

    def index(self):
        return self.view("~/Views/Home/Index.cshtml")

ويمكنك تسجيل تلقائيا كل تحكم

aspnet.Routing.register_all()

ويمكنك استخدام مختلف أساليب HTTP-

@aspnet.Filter.httpPost
    def postSample(self):
        return self.view("~/Views/Home/Index.cshtml")

وهناك ما هو أكثر من ذلك بكثير. هنا هو مثال قصيرة جدا

# ------------------------------------------------
# This is the root of any IronPython based
# AspNet MVC application.
# ------------------------------------------------

import aspnet

# Define "root" class of the MVC-System
class App(aspnet.Application):

    # Start IronPython asp.net mvc application. 
    # Routes and other stuff can be registered here
    def start(self):

        # Register all routes
        aspnet.Routing.register_all()

        # Set layout
        aspnet.Views.set_layout('~/Views/Shared/_Layout.cshtml')

        # Load style bundle
        bundle = aspnet.StyleBundle('~/Content/css')
        bundle.include("~/Content/css/all.css")

        aspnet.Bundles.add(bundle)

class HomeController(aspnet.Controller):

    def index(self):
        return self.view("~/Views/Home/Index.cshtml")

    def page(self):
        # Works also with default paths
        return self.view()

    def paramSample(self, id, id2 = 'default-value for id2'):
        # Works also with default paths
        model = SampleModel()
        model.id = id
        model.id2 = id2
        return self.view("~/Views/Home/ParamSample.cshtml", model)

    @aspnet.Filter.httpPost
    def postSample(self):
        return self.view("~/Views/Home/Index.cshtml")

class SampleModel:
    id = 0
    id2 = ''

class ProductController(aspnet.Controller):

    def index(self):
        return self.view("~/Views/Product/Index.cshtml")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top