Et oui, je l'ai cherché sur google je ne pouvais pas trouver la réponse exacte. Donc, quand utiliser @using SomeModel
dans ma vue de syntaxe rasoir. Je suis nouveau à ASP.net MVC 5 et je sais que chaque vue peut être fortement liée à un modèle ou un viewModel et nous utilisons @model ModelName
. Quelle sera la situation quand je devrai utiliser @using
dans ma vue de rasoir. Tout exemple serait très apprécié.Quand utiliser @using dans ma vue de syntaxe rasoir dans ASP.Net MVC 5
Répondre
Chaque fois que vous devez importer un espace de noms dans votre vue. C'est la même chose que lorsque vous importez un espace de noms dans un fichier de code C# standard. Par conséquent, si vous devez utiliser un type déclaré dans un espace de noms différent de celui de View, vous devez ajouter une instruction using
avant d'utiliser ce type.
@using OtherNamespace
@{
var example = new ExampleClass(); // full name is OtherNamespace.ExampleClass
}
Soyez conscient qu'il existe une autre méthode pour l'importation namespaces à l'intérieur des vues dans MVC 5, qui utilise le fichier Web.config
situé dans le dossier « Vues » (notez que ce n'est pas le fichier global Web.config
). Vous pouvez ajouter d'autres espaces de noms en ajoutant les éléments suivants:
<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>
De cette façon, vous aurez pas besoin d'ajouter une déclaration @using
dans le fichier .cshtml
.
[Modifier]
En ce qui concerne la déclaration @model
dans une vue, il y a essentiellement deux options:
@using MyNamespace.MyNestedNamespace
@model MyModel
Ou, si vous pensez que vous aurez pas besoin d'autres types de cet espace de noms:
@model MyNamespace.MyNestedNamespace.MyModel
Il n'y a pas de réelle différence, c'est à vous de décider ce que vous pensez être le mieux pour cette vue.
Plusieurs situations où vous auriez besoin de @using, par exemple. voir ci-dessous:
Vous avez une fonction de la vue
@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;
}
Voici mon func besoin de Regex System.Text.RegularExpressions;
passer quelques nouvelle classe de modèle à une autre vue
@using Model.Customer
@model Model.User
var cust = new Customer();
cust.Name = Model.Name;
Html.RenderPartial("_CustomerDetails", cust);
Hope, il a fait un certain sens.
Outre les réponses ci-dessus, vous utilisez généralement @using sur la forme création:
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
//TODO: Logic here
}
Cette offre syntaxe pratique qui garantit l'utilisation correcte des objets IDisposable. Pour plus de référence, vous pouvez visiter here.
Merci.Mais ma confusion est quand j'ai déjà un modèle en haut de la vue avec toutes les propriétés dont la vue aura besoin alors pourquoi vais-je jamais utiliser @using. Pouvez-vous donner un petit scénario. – Unbreakable
@Unbreakable Ajout d'un scénario simple. J'espère que cela clarifie votre doute. –