2017-05-13 1 views
1

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

2

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.

+0

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

+0

@Unbreakable Ajout d'un scénario simple. J'espère que cela clarifie votre doute. –

0

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, @"<[^>]+>|&nbsp;", "").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.

0

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.