是的,我在google上搜索过它找不到确切的答案。
那么,何时在我的剃刀语法视图中使用@using SomeModel
。我是ASP.net MVC 5的新手,我知道每个视图都可以强烈绑定到模型或viewModel,我们使用@model ModelName
。当我在剃须刀视图中使用@using
时会出现什么情况。任何例子都将受到高度赞赏。
答案 0 :(得分:5)
每次需要在视图中导入名称空间时。这与在标准C#代码文件中导入命名空间时相同。
因此,如果您需要使用在与View之前不同的命名空间中声明的类型,则在使用该类型之前,您需要添加using
语句。
@using OtherNamespace
@{
var example = new ExampleClass(); // full name is OtherNamespace.ExampleClass
}
请注意,在MVC 5中的视图中导入名称空间还有另一种方法,它使用位于“Views”文件夹中的Web.config
文件(请注意,这不是 global { {1}}文件)。您可以通过添加以下部分来添加更多名称空间:
Web.config
这样您就不需要在<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="OtherNamespace" />
</namespaces>
</pages>
</system.web.webPages.razor>
文件中添加@using
语句。
<强> [编辑] 强>
关于视图中的.cshtml
语句,基本上有两个选项:
@model
或者,如果您认为您不需要该命名空间中的任何其他类型:
@using MyNamespace.MyNestedNamespace
@model MyModel
没有真正的区别,取决于你认为哪种观点更好。
答案 1 :(得分:2)
除了上面的答案,你通常会在创建表单时使用@using:
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
//TODO: Logic here
}
这提供了方便的语法,可确保正确使用IDisposable对象。有关更多参考,请访问here。
答案 2 :(得分:1)
许多情况下你需要@using,例如见下文:
您有一个视图功能
@using System.Text.RegularExpressions;
public string StripHtml(string inputHTML)
{
if (inputHTML == null) {
return string.Empty;
}
string noHTML = Regex.Replace(inputHTML, @"<[^>]+>| ", "").Trim();
string noHTMLNormalised = Regex.Replace(noHTML, @"\s{2,}", " ");
return noHTMLNormalised;
}
这里我的func需要来自System.Text.RegularExpressions的正则表达式;
将一些新模型类传递给另一个视图
@using Model.Customer
@model Model.User
var cust = new Customer();
cust.Name = Model.Name;
Html.RenderPartial("_CustomerDetails", cust);
希望,这是有道理的。