Domanda

Sto tentando di creare un controllo utente MVC nel candidato alla versione e non riesco a crearne uno con un file codebehind. Lo stesso vale per le pagine MVC View.

La creazione di viste nella Beta produrrebbe codebehinds ... mi sto perdendo qualcosa?

È stato utile?

Soluzione

Codice dietro tipo di sconfitte allo scopo del MVC Framework. La funzionalità dovrebbe essere mantenuta separata dalla vista, il team MVC ha ritenuto che il codice dietro le pagine andasse contro questa ideologia e quindi li ha rimossi.

Puoi creare un metodo di supporto personalizzato per creare il tuo controllo. Inoltre, non sono sicuro che MVC abbia componenti di visualizzazione (monorotaia / castello), ma potrebbe anche essere un'opzione.

Altri suggerimenti

From post del blog di ScottGu :

* Visualizzazioni senza file code-behind In base al feedback che abbiamo & # 8217; abbiamo modificato i modelli di visualizzazione per non avere un file code-behind per impostazione predefinita. Questa modifica aiuta a rafforzare lo scopo delle viste in un'applicazione MVC (che hanno lo scopo puramente di renderizzare e non contenere alcun codice relativo al non rendering) e per la maggior parte delle persone elimina i file non utilizzati nel progetto. La build RC ora aggiunge il supporto alla sintassi C # e VB per ereditare i modelli di vista dalle classi di base che usano i generici. Ad esempio, di seguito lo stiamo usando con il modello di visualizzazione Edit.aspx & # 8211; il cui & # 8220; eredita & # 8221; l'attributo deriva dal tipo ViewPage:

Un bel vantaggio di non usare un file code-behind è che ora otterrai immediatamente intellisense nei file modello di visualizzazione quando li aggiungi al progetto. Con le build precedenti dovevi fare una compilazione / compilazione immediatamente dopo aver creato una vista per ottenere al suo interno il codice intellisense. L'RC rende il flusso di lavoro di aggiunta e modifica immediata di una vista senza compilazione e molto più semplice.

Importante: se si sta aggiornando un progetto ASP.NET MVC creato con una build precedente, assicurarsi di seguire i passaggi nelle note di rilascio & # 8211; il file web.config nella directory \ Views deve essere aggiornato con alcune impostazioni affinché la sintassi basata sui generici sopra funzioni. *

Ho risposto a questa domanda qui :

Come aggiungere una pagina Code-behind a una vista parziale

Sembra che non sia stato particolarmente complicato, ed è abbastanza fattibile Questa risposta ha funzionato per un 'ViewUserControl' parziale ma lo stesso dovrebbe valere

Ok.

Primo: aggiungi un file Class con la convenzione di .cs (ovvero view.ascx.cs)

Secondo: Aggiungi " usando System.Web.Mvc; " alla classe

Terzo: modifica la classe in Eredita da " ViewUserControl < > "

Quarto: aggiungi quanto segue all'intestazione della vista:

CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"

In quinto luogo: copia i file dalla soluzione e trascinali nuovamente per riassociare i due insieme

Nota: affinché funzioni con una visualizzazione MVC normale, è sufficiente ereditare la classe da " ViewPage "

L'intera idea di ASP.Net-mvc era quella di sbarazzarsi dei file codebehind ... ecco perché i controlli web asp non importavano che la maggior parte non funzionasse, ma con le modifiche di sbarazzarsi del codice dietro viene fornito con uno stile di programmazione diverso ... L'idea è che i file codebehind siano EVIL:

http://stevesmithblog.com/ blog / codebehind-files-in-asp-net-MVC-sono-il male /

l'idea è di assicurarsi che le persone ricordino che stanno usando le pagine web asp.Net-mvc e non asp.et. date un'occhiata a questo link, lo spiega un po 'meglio:

http://blog.lozanotek.com/archive/2008 /10/20/Visual_Studio_Templates_for_MVC_Views_without_Codebehind_Files.aspx

Penso che questo tutorial è ciò che stai chiedendo .. ma non sono sicuro di quello che vuoi ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top