使用MVC的Razor引擎进行ASP.NET控制

Han*_*ank 5 asp.net asp.net-mvc razor neatupload

我在我的网站上使用带有Razor模板引擎的ASP.NET MVC 3.我目前允许上传文件如下:

<form action="/File/Upload" method="post" enctype="multipart/form-data">
    <label for="file">Upload a file:</label>
    <input type="file" name="file" id="file" /> 
    <input type="submit" name="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

但是想使用第三方控件,例如NeatUpload,它允许进度条,多文件选择等.

在文档中,它们显示正在使用的控件,如下所示:

<%@ Register TagPrefix="Upload" Namespace="Brettle.Web.NeatUpload"
         Assembly="Brettle.Web.NeatUpload" %>
<Upload:InputFile id="inputFileId" runat="server" />
Run Code Online (Sandbox Code Playgroud)

一些代码隐藏.

可以理解的是Razor引擎不喜欢这种语法.有没有其他方法可以使用第三方控件,或者我运气不好?

Sco*_*ott 4

使用 Web 窗体的第三方控件并不真正与MVC 应用程序兼容。尽管如此,您也许能够使用混合类型的解决方案,在某些地方利用 Web 表单,在其他地方利用 MVC。这不是我个人会做的事情,但你可以。

请参阅Scott Hanselman 的这篇文章,其中详细介绍了这样做的一些细节。

但在 Razor 页面上使用 Web 表单控件是行不通的。

  • @smartcaveman ASP.NET 控件不能与 WebFormsViewEngine 一起使用。某些使用 WebForms 技术子集的控件可能在 MVC aspx 视图中工作,但肯定大多数都不能。 (2认同)