Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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# 返回ASP MVC PartialView时没有布局(Razor)_C#_Asp.net_Asp.net Mvc_Razor_Partial Views - Fatal编程技术网

C# 返回ASP MVC PartialView时没有布局(Razor)

C# 返回ASP MVC PartialView时没有布局(Razor),c#,asp.net,asp.net-mvc,razor,partial-views,C#,Asp.net,Asp.net Mvc,Razor,Partial Views,标题说明了一切,下面是一些代码: 单击按钮调用有问题的部分: <div class="red">@ViewData["komunikat"]</div><br /> <p> @if (serwisUser.isAdmin || serwisUser.isUtrzymanie) { <input type="submit" name="btnUtrzymania" id="WybierzUtrzymania"

标题说明了一切,下面是一些代码:

单击按钮调用有问题的部分:

<div class="red">@ViewData["komunikat"]</div><br />
<p>
     @if (serwisUser.isAdmin || serwisUser.isUtrzymanie)
     {
        <input type="submit" name="btnUtrzymania" id="WybierzUtrzymania" value="Wprowadź nowe warunki dla zaznaczonych utrzymań" />
        <input id="txtIlosc" type="text" style="width: 20px; " value="1"/>
        <input type="button" name="btnUtrzymania" onclick="javascript:dodajAplikacje();" id="DodajAplikacje" value="Dodaj aplikację do utrzymań" />
            }
</p>
这将使用可编辑表单加载部分视图,保存未通过验证的更改后,部分视图将随用户输入一起返回。所以没什么特别的。问题是,若验证失败,返回的部分视图并没有父视图和布局,只返回带有简单表的白色页面

局部视图:

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>

@using (Ajax.BeginForm("_DodajAplikacjeDoUtrzymania", "Utrzymania", new AjaxOptions { UpdateTargetId = "listaAplikacji", InsertionMode = InsertionMode.Replace }))
{
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Dodaj aplikację do utrzymań</legend>
<div id="ListaUtrzyman" class="t-widget t-grid">        
            <table id="utrzymania" cellspacing="0">
            <thead class="t-grid-header">
                <tr>
                    <th rowspan="2"  class="t-header">
                        Nazwa Aplikacji
                    </th>
                    <th colspan="2"  class="t-header_rowspan">
                        Okres obowiązywania nowej umowy
                    </th>
                    <th colspan="3"  class="t-header_rowspan">
                        Czas realizacji SLA [w dniach]
                    </th>
                    <th rowspan="2"  class="t-header">
                        Komentarz do umowy
                    </th>
                </tr>
                <tr>
                    <th class="t-header_rowspan2">
                        Rozpoczęcie
                    </th>
                    <th class="t-header_rowspan2_last">
                        Wygaśnięcie
                    </th>
                    <th class="t-header_rowspan2">
                        Krytyczne
                    </th>
                    <th class="t-header_rowspan2">
                        Zwykłe
                    </th>
                    <th class="t-header_rowspan2_last">
                        Zadania
                    </th>
                </tr>
                </thead>
                    @{int i = 0;
                    }
                    @foreach (var item in Model)
                    {
                    <tr>
                        <td>
                           @Html.DropDownList("[" + i + "].aplikacjaID", (List<SelectListItem>)ViewData["listaAplikacji"])

                           @Html.ValidationMessageFor(m => m[i].aplikacjaID)


                           @Html.HiddenFor(m => m[i].klientID)
                        </td>
                        <td>
                            @Html.Telerik().DatePickerFor(m => m[i].dataWprowadzenia).ShowButton(true).Format("yyyy-MM-dd").Name("[" + i + "].dataWprowadzenia").HtmlAttributes(new { @id = i + "-dataWprowadzenia" }).Value(DateTime.Now)

                            @Html.ValidationMessageFor(m => m[i].dataWprowadzenia)
                            @if (i == 0 && Model.Count > 1)
                            { <input type="image" onclick="PowielKrytyczne('dataWprowadzenia'); return false;" alt="Powiel" src="../../Content/images/down arrow.png" style="width: 16px; float: right;" /> }
                        </td>
                        <td>
                            @Html.Telerik().DatePickerFor(m => m[i].dataWygasniecia).ShowButton(true).Format("yyyy-MM-dd").Name("[" + i + "].dataWygasniecia").HtmlAttributes(new { @id = i + "-dataWygasniecia" }).Value(DateTime.Now.AddYears(1))
                            @Html.ValidationMessageFor(m => m[i].dataWygasniecia)
                            @if (i == 0 && Model.Count > 1)
                            { <input type="image" onclick="PowielKrytyczne('dataWygasniecia'); return false;" alt="Powiel" src="../../Content/images/down arrow.png" style="width: 16px; float: right;" /> }
                        </td>
@*                        <td>
                            @Html.CheckBoxFor(m => m[i].czySLA, new { @id = i + "-czySLA" })
                            @if (i == 0 && Model.Count > 1)
                            { <input type="image" onclick="PowielCheckBox('czySLA'); return false;" alt="Powiel" src="../../Content/images/down arrow.png" style="width: 16px; float: right;" /> }
                        </td>*@
                        <td>
                            @Html.TextBoxFor(m => m[i].czasKrytyczny, new { @style = "width:50px", @id = i + "-czasKrytyczny", @class = "number" })
                            @Html.ValidationMessageFor(m => m[i].czasKrytyczny)
                            @if (i == 0 && Model.Count > 1)
                            { <input type="image" onclick="PowielKrytyczne('czasKrytyczny'); return false;" alt="Powiel" src="../../Content/images/down arrow.png" style="width: 16px; float: right;" /> }
                        </td>
                        <td>
                            @Html.TextBoxFor(m => m[i].czasNormalny, new { @style = "width:50px", @id = i + "-czasNormalny", @class = "number" })
                            @Html.ValidationMessageFor(m => m[i].czasNormalny)
                            @if (i == 0 && Model.Count > 1)
                            { <input type="image" onclick="PowielKrytyczne('czasNormalny'); return false;" alt="Powiel" src="../../Content/images/down arrow.png" style="width: 16px; float: right;" /> }
                        </td>
                        <td>
                            @Html.TextBoxFor(m => m[i].czasZadanie, new { @style = "width:50px", @id = i + "-czasZadanie", @class = "number" })
                            @Html.ValidationMessageFor(m => m[i].czasZadanie)
                            @if (i == 0 && Model.Count > 1)
                            { <input type="image" onclick="PowielKrytyczne('czasZadanie'); return false;" alt="Powiel" src="../../Content/images/down arrow.png" style="width: 16px; float: right;" /> }
                        </td>
                        <td>
                            @Html.TextAreaFor(m => m[i].komentarz, new { @id = i + "-komentarz" })
                            @if (i == 0 && Model.Count > 1)
                            { <input type="image" onclick="PowielKrytyczne('komentarz'); return false;" alt="Powiel" src="../../Content/images/down arrow.png" style="width: 16px; float: right;" /> }
                        </td>
                    </tr>
                            i++;
                    }

            </table>
            </div>
            <p>
                <input type="submit" id="ZapiszZmiany" value="Zapisz" disabled="disabled"/>
                <input type="button" id="PowrotDoListy" value="Powrót do listy utrzymań" />
            </p>  


    </fieldset>
}

@使用(Ajax.BeginForm(“\u dodajappilikacjedoutrzymania”,“Utrzymania”,新的AjaxOptions{UpdateTargetId=“listaAplikacji”,InsertionMode=InsertionMode.Replace}))
{
@Html.ValidationSummary(true)
多达吉·阿普利卡奇·多·乌特泽马(Dodaj aplikacjędo utrzymań)
Nazwa Aplikacji
Okres obowiązywania nowej umowy
捷克共和国
科门塔尔兹杜乌莫维酒店
罗兹波奇
威加尼西酒店
Krytyczne
Zwykłe
扎达尼亚
@{int i=0;
}
@foreach(模型中的var项目)
{
@Html.DropDownList(“[”+i+“].aplikacjaID)”,(列表)视图数据[“listaAplikacji”])
@Html.ValidationMessageFor(m=>m[i].aplikacjaID)
@Html.HiddenFor(m=>m[i].klientID)
@Html.Telerik().DatePickerFor(m=>m[i].dataWprowadzenia.ShowButton(true).Format(“yyyyy-MM-dd”).Name(“[“+i+”].dataWprowadzenia”).HtmlAttributes(新的{@id=i+“-dataWprowadzenia”).Value(DateTime.Now)
@Html.ValidationMessageFor(m=>m[i].dataWprowadzenia)
@如果(i==0&&Model.Count>1)
{  }
@Html.Telerik().DatePickerFor(m=>m[i].dataWygasniecia.ShowButton(true).Format(“yyyyy-MM-dd”).Name(“[“+i+”].dataWygasniecia”).HtmlAttributes(new{@id=i+“-dataWygasniecia”).Value(DateTime.Now.AddYears(1))
@Html.ValidationMessageFor(m=>m[i].dataWygasniecia)
@如果(i==0&&Model.Count>1)
{  }
@*                        
@CheckBoxFor(m=>m[i].czySLA,新的{@id=i+“-czySLA”})
@如果(i==0&&Model.Count>1)
{  }
*@
@Html.TextBoxFor(m=>m[i].czasKrytyczny,新{@style=“width:50px”,@id=i+“-czasKrytyczny”,@class=“number”})
@Html.ValidationMessageFor(m=>m[i].czasKrytyczny)
@如果(i==0&&Model.Count>1)
{  }
@Html.TextBoxFor(m=>m[i].czasNormalny,新{@style=“width:50px”、@id=i+“-czasNormalny”、@class=“number”})
@Html.ValidationMessageFor(m=>m[i].czasNormalny)
@如果(i==0&&Model.Count>1)
{  }
@Html.TextBoxFor(m=>m[i].czasZadanie,新的{@style=“width:50px”、@id=i+“-czasZadanie”、@class=“number”})
@Html.ValidationMessageFor(m=>m[i].czasZadanie)
@如果(i==0&&Model.Count>1)
{  }
@TextAreaFor(m=>m[i].komentarz,新的{@id=i+“-komentarz”})
@如果(i==0&&Model.Count>1)
{  }
i++;
}

}
张贴方法:

    [Authorize]
    [HttpPost]
    public ActionResult _DodajAplikacjeDoUtrzymania(List<aplikacja_UtrzymanieAdd> utrzymanie)
    {
        serwisLoggedUser serwisUser = (serwisLoggedUser)Session["serwisUser"];
        if (serwisUser.isAdmin || serwisUser.isUtrzymanie)
        {
            ViewData["DodajUtrzymanie"] = @"class = selected";
            ViewData["czyWyswietlac"] = @"style = display:none;";

            string listaNowychAplikacji = string.Empty;

            Guid klientId;

            if(Session["klientId"] != null || Session["klientIdListaUtrzyman"] != null)
                klientId = (Guid)(Session["klientId"] ?? Session["klientIdListaUtrzyman"]);
            else
                return PartialView("_404");

            ViewData["listaAplikacji"] = listaAplikacji(klientId);

            if (ModelState.IsValid)
            {
                using (serwisCurrendaEntities entites = new serwisCurrendaEntities())
                {
                    foreach (aplikacja_UtrzymanieAdd utrz in utrzymanie)
                    {
                        serwis_Utrzymanie noweUtrzymanie = new serwis_Utrzymanie();
                        noweUtrzymanie.aplikacjaID = utrz.aplikacjaID;
                        noweUtrzymanie.czasKrytyczny = utrz.czasKrytyczny;
                        noweUtrzymanie.czasNormalny = utrz.czasNormalny;
                        noweUtrzymanie.czasZadanie = utrz.czasZadanie;
                        noweUtrzymanie.czySLA = utrz.czySLA;
                        noweUtrzymanie.czyUs = false;
                        if (utrz.dataWprowadzenia == null)
                        {
                            noweUtrzymanie.dataWprowadzenia = utrz.dataKoncaUtrzymania.Value;
                        }
                        else
                        {
                            noweUtrzymanie.dataWprowadzenia = utrz.dataWprowadzenia.Value;
                        }
                        noweUtrzymanie.dataWygasniecia = utrz.dataWygasniecia;
                        noweUtrzymanie.klientID = klientId;
                        noweUtrzymanie.komentarz = utrz.komentarz;
                        entites.AddToserwis_Utrzymanie(noweUtrzymanie);
                        listaNowychAplikacji += noweUtrzymanie.serwis_Aplikacje.nazwaAplikacji + ", ";

                        TempData["klient"] = entites.serwis_Klienci.Where(k => k.klientID == klientId).FirstOrDefault().nazwa;
                        TempData["klientID"] = klientId;

                        Logger.Instance.AddLog("serwisCurrendaAdministrator.Controllers.UtrzymaniaController._DodajAplikacjeDoUtrzymania", Level.Info, String.Format("Użytkownik domenowy {0} dla klienta {1} dodał nowe utrzymanie dla {2}: rozpoczęcie {3}, wygaśnięcie {4}.", User.Identity.Name, TempData["klient"], noweUtrzymanie.serwis_Aplikacje.nazwaAplikacji, noweUtrzymanie.dataWprowadzenia, noweUtrzymanie.dataWygasniecia));
                    }

                    entites.SaveChanges();

                    TempData["Message"] = "Dodano utrzymania!";

                    return RedirectToAction("ListaUtrzyman", new { klientID = klientId });
                }
            }

            return View("_DodajAplikacjeDoUtrzymania", utrzymanie);
        }

        return PartialView("_403");
    }
[授权]
[HttpPost]
公共行动结果Dodajappikechedoutrzymania(列出utrzymanie)
{
serwisLoggedUser serwisUser=(serwisLoggedUser)会话[“serwisUser”];
if(serwisUser.isAdmin | | serwisUser.isUtrzymanie)
{
ViewData[“DoDAJutrzmanie”]=@“类=选定”;
ViewData[“czyWyswietlac”]=@“样式=显示:无;”;
string listaNowychAplikacji=string.Empty;
Guid-klientId;
如果(会话[“klientId”]!=null | |会话[“klientIdListaUtrzyman”]!=null)
klientId=(Guid)(会话[“klientId”]??会话[“KlientIDListautzyman”);
其他的
返回部分视图(“404”);
ViewData[“listaAplikacji”]=listaAplikacji(klientId);
if(ModelState.IsValid)
{
使用(serwisCurrendaEntities Entities=new serwisCurrendaEntities())
{
foreach(胞内多糖中的胞外多糖和胞外多糖)
{
serwis_utzymanie noweUtrzymanie=新serwis_utzymanie();
noweUtrzymanie.aplikacjaID=utrz.aplikacjaID;
noweUtrzymanie.czasKrytyczny=utrz.c
    [Authorize]
    [HttpPost]
    public ActionResult _DodajAplikacjeDoUtrzymania(List<aplikacja_UtrzymanieAdd> utrzymanie)
    {
        serwisLoggedUser serwisUser = (serwisLoggedUser)Session["serwisUser"];
        if (serwisUser.isAdmin || serwisUser.isUtrzymanie)
        {
            ViewData["DodajUtrzymanie"] = @"class = selected";
            ViewData["czyWyswietlac"] = @"style = display:none;";

            string listaNowychAplikacji = string.Empty;

            Guid klientId;

            if(Session["klientId"] != null || Session["klientIdListaUtrzyman"] != null)
                klientId = (Guid)(Session["klientId"] ?? Session["klientIdListaUtrzyman"]);
            else
                return PartialView("_404");

            ViewData["listaAplikacji"] = listaAplikacji(klientId);

            if (ModelState.IsValid)
            {
                using (serwisCurrendaEntities entites = new serwisCurrendaEntities())
                {
                    foreach (aplikacja_UtrzymanieAdd utrz in utrzymanie)
                    {
                        serwis_Utrzymanie noweUtrzymanie = new serwis_Utrzymanie();
                        noweUtrzymanie.aplikacjaID = utrz.aplikacjaID;
                        noweUtrzymanie.czasKrytyczny = utrz.czasKrytyczny;
                        noweUtrzymanie.czasNormalny = utrz.czasNormalny;
                        noweUtrzymanie.czasZadanie = utrz.czasZadanie;
                        noweUtrzymanie.czySLA = utrz.czySLA;
                        noweUtrzymanie.czyUs = false;
                        if (utrz.dataWprowadzenia == null)
                        {
                            noweUtrzymanie.dataWprowadzenia = utrz.dataKoncaUtrzymania.Value;
                        }
                        else
                        {
                            noweUtrzymanie.dataWprowadzenia = utrz.dataWprowadzenia.Value;
                        }
                        noweUtrzymanie.dataWygasniecia = utrz.dataWygasniecia;
                        noweUtrzymanie.klientID = klientId;
                        noweUtrzymanie.komentarz = utrz.komentarz;
                        entites.AddToserwis_Utrzymanie(noweUtrzymanie);
                        listaNowychAplikacji += noweUtrzymanie.serwis_Aplikacje.nazwaAplikacji + ", ";

                        TempData["klient"] = entites.serwis_Klienci.Where(k => k.klientID == klientId).FirstOrDefault().nazwa;
                        TempData["klientID"] = klientId;

                        Logger.Instance.AddLog("serwisCurrendaAdministrator.Controllers.UtrzymaniaController._DodajAplikacjeDoUtrzymania", Level.Info, String.Format("Użytkownik domenowy {0} dla klienta {1} dodał nowe utrzymanie dla {2}: rozpoczęcie {3}, wygaśnięcie {4}.", User.Identity.Name, TempData["klient"], noweUtrzymanie.serwis_Aplikacje.nazwaAplikacji, noweUtrzymanie.dataWprowadzenia, noweUtrzymanie.dataWygasniecia));
                    }

                    entites.SaveChanges();

                    TempData["Message"] = "Dodano utrzymania!";

                    return RedirectToAction("ListaUtrzyman", new { klientID = klientId });
                }
            }

            return View("_DodajAplikacjeDoUtrzymania", utrzymanie);
        }

        return PartialView("_403");
    }
if (ModelState.IsValid)
{
  ....
}
return PartialView("_DodajAplikacjeDoUtrzymania", utrzymanie);
@model List<aplikacja_UtrzymanieAdd>    
@{
  layout = null;
}