aspx 2剃刀代码转换

时间:2011-07-04 10:56:57

标签: razor

任何人都可以将以下代码转换为Razor,我试过telerik aspx 2tazor,但那不起作用。当我使用验证码与aspx工作,但我不知道如何转换下面的代码,使其适用于剃刀。

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcApplication1.Models.CaptchaData>" %>

<fieldset>
    <legend>Please provide your name and a comment</legend>
    <p>
        <%: Html.XCaptcha().Image(m => m.EncrypedSolution) %>
    </p>
    <p>
        <label for="Attempt">
            Characters above</label>
        <%=Html.TextBoxFor(cd => cd.Attempt)%><%=Html.ValidationMessageFor(cd => cd.Attempt)%>
    </p>
    <%: Html.AntiForgeryToken() %>
    <input type="submit" name="submit" id="submit" value="submit" />
    <%: Html.ValidationSummary() %>
</fieldset>
</div>
<script src="../../Scripts/xcaptcha-2.0.js" type="text/javascript"></script>
</body> </html>

1 个答案:

答案 0 :(得分:2)

您是否尝试过http://razorconverter.codeplex.com/

我也一直在调查如何使用aspx转换现有网站以获得Razor视图,而且这个工具已经帮了很多忙。它不是完美的,它不会让你100%的方式,但它确实有助于节省转换文件的时间。

我发现帮助我充分利用这个工具的方法是创建两个asp.net mvc网站...一个用ASPX,另一个用Razor ...然后我用这个工具转换aspx网站...然后将结果与Razor网站进行比较,这有助于我发现我需要遵循哪些额外步骤才能完全切换到Razor。我打算利用这种学习经验来转换现有网站......

我发现这个工具的一个缺点(也许有一种方法可以避免我不知道这一点)是它将所有的cshtml文件创建为小写文件而不是保留驼峰的情况......

另一个缺点是它似乎在@(...)周围留下了许多代码......但它们很容易删除。

一个好处是,这个工具还可以转换你的Site.Mastor,然后你必须将其重命名为_Layout.cshtml

代码的剃须刀转换器的结果是:

    @model MvcApplication1.Models.CaptchaData

<fieldset>
    <legend>Please provide your name and a comment</legend>
    <p>
        @(Html.XCaptcha().Image(m => m.EncrypedSolution))
    </p>
    <p>
        <label for="Attempt">
            Characters above</label>
        @(Html.TextBoxFor(cd => cd.Attempt))@(Html.ValidationMessageFor(cd => cd.Attempt))
    </p>
    @(Html.AntiForgeryToken())
    <input type="submit" name="submit" id="submit" value="submit" />
    @(Html.ValidationSummary())
</fieldset>
</div>
<script src="../../Scripts/xcaptcha-2.0.js" type="text/javascript"></script>
</body> </html>

我发现有用的另一个工具是WebFormsRazorConverterVsExtension

它利用了引擎盖下的Telerik's razor-converter ......尽管你说这对你不起作用,当我用它来转换你的样品时,它对我很有用......所以也许你应该试一试。

它不会转换Site.Master ...因此您可能需要使用这两种工具的组合来转换您的网站...但输出比上面的razorconverter更清晰......

以下是我使用WebFormsRazorConverterVsExtension时得到的结果:

@model MvcApplication1.Models.CaptchaData

<fieldset>
    <legend>Please provide your name and a comment</legend>
    <p>
        @Html.XCaptcha().Image(m => m.EncrypedSolution)
    </p>
    <p>
        <label for="Attempt">
            Characters above</label>
        @Html.TextBoxFor(cd => cd.Attempt)@Html.ValidationMessageFor(cd => cd.Attempt)
    </p>
    @Html.AntiForgeryToken()
    <input type="submit" name="submit" id="submit" value="submit" />
    @Html.ValidationSummary()
</fieldset>
</div>
<script src="../../Scripts/xcaptcha-2.0.js" type="text/javascript"></script>
</body> </html>

另外,我发现以下参考资料很有帮助,因此它们可以帮助您进行转换。

相关问题