Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC控制器多视图和路由问题_C#_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

C# MVC控制器多视图和路由问题

C# MVC控制器多视图和路由问题,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,目前,我们有一个视图名称“Self Deposit”,并有一个控制器支持它。 该视图是一个独立页面,使用部分视图构建: 例子 文件夹名称:SelfDeposit 主视图文件:_layoutseleposit.cshtml 部分视图:Register.cshtml、Pending.cshtml等 这是主要观点: @视图包。标题 @style.Render(“~/Content/SelfDeposit\u css”) @Scripts.Render(“~/bundles/Scripts”) @S

目前,我们有一个视图名称“Self Deposit”,并有一个控制器支持它。 该视图是一个独立页面,使用部分视图构建: 例子 文件夹名称:SelfDeposit 主视图文件:_layoutseleposit.cshtml 部分视图:Register.cshtml、Pending.cshtml等

这是主要观点:


@视图包。标题
@style.Render(“~/Content/SelfDeposit\u css”)
@Scripts.Render(“~/bundles/Scripts”)
@Scripts.Render(“~/bundles/bootstrap”)
@Scripts.Render(“~/bundles/jqueryval”)
@if(System.Globalization.CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft)
{
@style.Render(“~/Content/BootstapRtl_css”)
}
@RenderBody()
@Html.Partial(“第三方Typexels/GoogleTagManager”)
这是加载其开始的控制器:

 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);
    }
private readonly ForexDbContext\u Db=DbLoader.GetDb();
//获取:自动存款
公共行动结果索引()
{
返回重定向操作(nameof(this.Register));
}
公共异步任务寄存器()
{
ViewBag.CountryId=等待GetCountriesAsync();
var模型=新的SelfDepositRegistrationViewModel{};
如果(TempData[Main.LEAD\u REG\u DETAILS\u FOR \u OPEN\u ACCOUNT]!=null&&TempData[Main.LEAD\u REG\u DETAILS\u FOR \u OPEN\u ACCOUNT]为LeadRegistered)
{
var leadRegistered=TempData[Main.LEAD\u REG\u DETAILS\u FOR\u OPEN\u ACCOUNT]作为leadRegistered;
ViewBag.LeadRegisteredDetails=leadRegistered;
model.FirstName=leadRegistered.FirstName;
model.LastName=leadRegistered.LastName;
model.Email=leadRegistered.Email;
model.PhoneNumber=leadRegistered.Phone;
model.PhoneCountryCode=leadRegistered.PhoneCountry;
}
返回视图(模型);
}
我试图实现的是拥有多个视图,每个视图具有不同的布局和css,但保持控制器不变,而不是在每次添加视图时复制它

我尝试了以下操作:在主文件夹下添加文件夹: 自存-->布局1-->\u layoutselfposit.cshtml 但它没有工作,因为我无法计算路由问题

有人有想法吗?
感谢

要返回不同的视图,您可以指定要返回的视图的名称和模型,如下所示:

return View("ViewName", yourModel);
要获取视图的绝对路径,请使用:

return View("~/Views/FolderName/ViewName.cshtml");
或者,您可以创建一个局部视图,并可以像这样返回:

return PartialView("PartialViewName", Model);

要返回不同的视图,可以指定要返回的视图的名称和模型,如下所示:

return View("ViewName", yourModel);
要获取视图的绝对路径,请使用:

return View("~/Views/FolderName/ViewName.cshtml");
或者,您可以创建一个局部视图,并可以像这样返回:

return PartialView("PartialViewName", Model);

您是否希望通过
返回视图(viewName,model)
来有效地使视图的名称动态化?然后,您可以从querystring、DB或类似文件中查找该名称。我已经使用cookies实现了类似的功能来控制表单旅程流。您是否希望通过
返回视图(viewName,model)
来有效地使视图的名称动态化?然后,您可以从querystring、DB或类似文件中查找该名称。我已经使用cookies实现了类似的东西来控制表单流程。