2016-03-23 14 views
0

Bazı ASP.NET sayfalarını MVC kullanarak yeniden yazmak için atanmıştım. Bu ödev üzerinde çalışmadan önce MVC'de tamamen eğitimsiz kaldım.Varolan bir ASP.NET uygulamasına MVC görünümleri nasıl eklenir?

Üzerinde çalıştığım sayfalar, kullanıcıdan parametre kabul eden, parametreleri saklı bir prosedüre (SQL Server) geçiren ve bir web sayfasında görüntülenen veri kümesini döndüren basit raporlardır.

Bu projeye gelmeden önce, önceki bir ekip üyesi bu sayfaları MVC'ye dönüştürme sürecindeydi. Gelmeden önce gitti. Şimdi bu sayfaları MVC'ye dönüştürme görevine devam etmek için görevlendirildim.

W3schools ve Kanal 9'daki bazı MVC eğiticileri ile çalıştım ve bunlar bana mantıklı geliyor. Bu basit eğitim uygulamalarını sorunsuz bir şekilde çalıştırabiliyordum. Ama bu 'gerçek' sayfaları MVC'ye dönüştürmekte çok fazla sorun yaşıyorum.

"Dönüştürme" diyorum, ama bununla demek istediğim, mevcut sayfaları tek başına bırakıyorum ve varolan sayfanın davranışını taklit eden yeni bir MVC "sayfası" yapıyorum.

Yeni bir denetleyici oluşturabildiğim, ardından yeni denetleyiciden yeni bir görünüm oluşturabildiğim ve daha sonra uygulamamı çalıştıracağım ve ilgili URL'yi tarayıcının adresine yazarak yeni görünüme geçebileceğimi varsayımı altında çalışıyorum bar. Ama bunu denediğimde 404 hatası alıyorum.

Ekibimde başka hiç kimse bana MVC ile herhangi bir tavsiyede bulunacak kadar tanıdık gelmiyor. Bu durumun nasıl giderileceği hakkında hiçbir fikrim yok. Çalıştığım projeyle ilgili olabildiğince spesifik bilgi vereceğim, şu anda hangi ayrıntıların sağlanacağından emin değilim.

Özetle, şu an için sorduğum şey, bu mevcut uygulamada nasıl yeni bir görünüm oluşturulacağı ve uygulamanın URL'sine gitmeyi denediğimde uygulamayı başarılı bir şekilde görüntülemenin nasıl sağlanacağı konusunda yardımcı oluyor.

Teşekkürler.

Düzenleme:

ben onunla ilişkili görünümünü görüntülemek için uygulamayı alabilir sadece görmek için, çok basit bir denetleyici ile başladı ettik. Denetleyici, ilişkili görünümünü görüntülemekten başka bir şey yapmak anlamına gelmez.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace TSS.Controllers 
{ 
    public class Tim_Dev_Controller : Controller. 
    { 
     // 
     // GET: /Tim_Dev_/ 

     public ActionResult Index() 
     { 
      return View(); 
     } 

     public ActionResult Test() 
     { 
      return View(); 
     } 

    } 
} 

Düzenleme 1.1:

@{ 

ViewBag.Title = "Index"; 

Layout = "~/Views/Shared/_Layout.cshtml"; 

} 

<h2>Index</h2> 

Düzenleme 2: İşte karşılık gelen görünüm için kod İşte bunun için kod İşte routeconfig.cs dosyasının içeriği:

using System.Web.Mvc; 

using System.Web.Routing; 

using TSS.Utilities; 

namespace TSS 

{ 

public class RouteConfig 

{ 

public static void RegisterRoutes(RouteCollection routes) 

{ 

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

routes.MapRoute(

name: "Default", 

url: "{instance}/{controller}.aspx/{action}/{id}", 

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 

); 

routes.MapRoute(

name: "CTPCatalogImportEmployee", 

url: "{instance}/{controller}.aspx/{action}/{empId}/{series}" 

); 
} 
} 
} 

Düzenleme 3: Burada biraz daha fazla bilgi var. Onların

return View() 

arayıp bu sayfaları açtığınızda bu kırılma noktaları vurmak mevcut denetleyicileri bir kırılma noktasını yerleştirebilirsiniz. Ancak, yeni denetleyicimde aynı

numaralı çağrıyı aradığımda hiçbir zaman vurulmaz. (Bu, ilgili URL’yi tarayıcının adres çubuğuna girerek yeni görünümümde gezinmeye çalıştığım zamandır.)

+2

Lütfen bazı denetleyici kodunu ve ilgili görünümü gönderin ve size yardımcı olabiliriz. – markpsmith

+1

Lütfen sahip olduğunuz ve denediğiniz bir kodu gönderin, böylece en iyi şekilde yardımcı olabiliriz! –

+0

bu yardımcı olacak mı? http://www.davepaquette.com/archive/2013/12/30/so-you-inherited-an-asp-net-web-forms-application.aspx –

cevap

0

Eski aspx dosyaları görmezden ve .aspx

public static void RegisterRoutes(RouteCollection routes) { 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 

    routes.MapRoute(
     name: "Default", 
     url: "{instance}/{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

    routes.MapRoute(
     name: "CTPCatalogImportEmployee", 
     url: "{instance}/{controller}/{action}/{empId}/{series}" 
    ); 
} 
+0

RegisterRoutes() yöntemimin içeriğini önerilen kodla değiştirdim, ancak boşuna. URL’yi girdiğimde yeni görünümümü hala açamıyorum. – T1M0THY

0

Bazen ben bariz ardı eğilimi var olmadan yolları tutmalı. Yeni denetleyiciyi ekledikten ve görüntüledikten sonra çözümümüzü yeniden inşa etmekten asla rahatsız olmadım. Bir kez ben yaptım kontrolör ateş açtı ve herhangi bir sorun olmadan manzarayı yukarı çekti.

Yardımlarınız için [nefes]

herkese teşekkürler.