2016-12-28 38 views
1

目前我们已经查看名称'Self Deposit'和一个控制器来支持它。 的观点是,有部分意见建立了一个独立的页面: 例 文件夹名称:SelfDeposit 主视图文件:_LayoutSelfDeposit.cshtml 局部视图:Register.cshtml,Pending.cshtml等MVC控制器多视图和路由问题

这是主要的视图:

<html dir="@(System.Globalization.CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft ? "rtl" : "ltr")"> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>@ViewBag.Title</title> 
    @Styles.Render("~/Content/SelfDeposit_css") 
    @Scripts.Render("~/bundles/scripts") 
    @Scripts.Render("~/bundles/bootstrap") 
    @Scripts.Render("~/bundles/jqueryval") 
    @if (System.Globalization.CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft) 
    { 
     @Styles.Render("~/Content/BootstapRtl_css") 
    } 
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700|PT+Sans" rel="stylesheet"> 
</head> 
<body> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-md-12 text-center"> 
       <a href="#" class="logo"></a> 
      </div> 
     </div> 
    </div> 
    @RenderBody() 
    <div class="container text-center"> 
     <img src="~/Content/SelfDeposit/footer-icons.png" class="img-responsive footer-icons" /> 
    </div> 
    @Html.Partial("ThirdPartyPixels/GoogleTagManager") 
</body> 
</html> 

这是装载了它的开始,所述控制器:

private readonly ForexDbContext _Db = DbLoader.GetDb(); 
    // GET: SelfDeposit 
    public ActionResult Index() 
    { 
     return RedirectToAction(nameof(this.Register)); 
    } 
    public async Task<ActionResult> Register() 
    { 
     ViewBag.CountryId = await GetCountiesAsync(); 
     var model = new SelfDepositRegistrationViewModel { }; 
     if (TempData[Main.LEAD_REG_DETAILS_FOR_OPEN_ACCOUNT] != null && TempData[Main.LEAD_REG_DETAILS_FOR_OPEN_ACCOUNT] is LeadRegistered) 
     { 
      var leadRegistered = TempData[Main.LEAD_REG_DETAILS_FOR_OPEN_ACCOUNT] as LeadRegistered; 
      ViewBag.LeadRegisteredDetails = leadRegistered; 
      model.FirstName = leadRegistered.FirstName; 
      model.LastName = leadRegistered.LastName; 
      model.Email = leadRegistered.Email; 
      model.PhoneNumber = leadRegistered.Phone; 
      model.PhoneCountryCode = leadRegistered.PhoneCountry; 
     } 

     return View(model); 
    } 

我试图实现的是有不同的布局和CSS的每个视图,但保持控制器相同,并不是每次我添加视图时复制它。

我曾尝试以下内容:主文件夹下添加文件夹: SelfDeposit - >布局1 - > _ LayoutSelfDeposit.cshtml 但它没有工作,因为我想不出路由问题。

有没有人有想法? 感谢

+0

是找g对于'return View(viewName,model)'中的某些内容来有效地使视图的名称变为动态的?然后,您可以从查询字符串,数据库或类似名称中查找名称。我使用cookies来实现类似的功能,以控制表单旅程流程。 – G0dsquad

回答

4

返回不同的看法,你可以按如下方式指定要返回和模型视图名称:

return View("ViewName", yourModel); 

要获取视图的绝对路径,使用:

return View("~/Views/FolderName/ViewName.cshtml"); 

或者你可以做一个局部视图,并且可以返回,如:

return PartialView("PartialViewName", Model); 
+1

谢谢!它帮助! –