ASP.NET MVC上的IronPython

2024-05-13 02:11:50 发布

您现在位置:Python中文网/ 问答频道 /正文

有人尝试过使用IronPython的ASP.NET MVC吗?最近做了大量的Python开发工作,在我进入一个潜在的ASP.NET MVC项目时继续使用该语言会很好。

我特别有兴趣利用Python的动态特性和.NET特性,比如LINQ,并想知道这是否可能。对于某些动态编程来说,另一条可行的途径是C#4.0及其dynamic关键字。

思想,经历?


Tags: 项目语言利用net编程动态dynamic关键字
2条回答

我正在做这个。它已经支持很多东西了: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")

在ASP.NET MVC中使用IronPython:http://www.codevoyeur.com/Articles/Tags/ironpython.aspx

本页包含以下文章:

  • 一个简单的用于ASP.NET MVC的IronPython ControllerFactory
  • 一个简单的用于ASP.NET MVC的IronPython ActionFilter
  • 一个简单的用于ASP.NET MVC的IronPython路由映射器
  • 一个用于ASP.NET MVC的不引人注目的IronPython视图引擎

是的,there is an MVC example from the DLR team

你也可能对Spark感兴趣。

相关问题 更多 >