当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET MVC上的IronPython

如何解决《ASP.NETMVC上的IronPython》经验,为你挑选了3个好方法。

有没有人尝试过使用IronPython的ASP.NET MVC?最近做了很多Python开发,在进入潜在的ASP.NET MVC项目时继续使用该语言会很不错.

我特别感兴趣的是利用LINQ等.NET功能来利用Python的动态方面,并想知道这是否可行.对于某些动态编程可能可行的另一条路径是C#4.0及其dynamic关键字.

思想,经历?



1> Craig Stuntz..:

是的,DLR团队有一个MVC示例.

您可能也对Spark感兴趣.



2> Igor Zelmano..:

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

此页面包含以下文章:

ASP.NET MVC的简单IronPython ControllerFactory

一个简单的IronPython ActionFilter for ASP.NET MVC

ASP.NET MVC的简单IronPython路由映射器

一个不引人注目的IronPython ViewEngine for ASP.NET MVC



3> BendEg..:

我正在研究这个问题.它已经支持了很多东西: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")

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有