0
..因此,我可以在_Layout文件中顯示特定的queryresult行。 結果是隨機排列的。 每頁只需要一個Databaserequest請求。如何將SQL結果存儲在ASP.NET MVC
在_Layout.cshtml,(我要這兩種方法來顯示相同):
@{ Html.RenderAction("RegularAdV2", "AdV2", new { type = "panoramaxl", skip = 0 });}
@{ Html.RenderAction("RegularAdV2", "AdV2", new { type = "panoramaxl", skip = 0 });}
Childaction:
[ChildActionOnly]
public PartialViewResult RegularAdV2(string type,int skip)
{
AdViewModel ad = null;
if ("mobile".Equals(type))
{
if (UserAgentHelper.CheckUserAgent((string)Request.UserAgent, Request.Browser.IsMobileDevice))
{
ad = repository.MyAds(type, 3, true).Select(x => new AdViewModel { Script = x.AdExtra, ClickUrl = x.AdClickUrl, Place = x.PlacementName, Src = x.AdPath, Title = x.AdTitle }).Skip(skip).FirstOrDefault();
}
}
else
{
if (!UserAgentHelper.CheckUserAgent((string)Request.UserAgent, Request.Browser.IsMobileDevice))
{
ad = repository.MyAds(type, 3, false).Select(x => new AdViewModel { Script = x.AdExtra, ClickUrl = x.AdClickUrl, Place = x.PlacementName, Src = x.AdPath, Title = x.AdTitle }).Skip(skip).FirstOrDefault();
}
}
return PartialView(ad);
}
局部視圖:
@model Jaff.WebUI.Models.AdViewModel
@if (Model != null)
{
if (string.IsNullOrEmpty(Model.Script))
{
<p class="ad-presentation">Annons</p>
<a href="@Model.ClickUrl" target="_blank"><img alt="annons" class="ad-image" src="//ads.-------.se/AdFiles/img/@Model.Src"></a>
}
else
{
<p class="ad-presentation">Annons</p>
<div class="script-box">@Html.Raw(Model.Script)</div>
}
}
視圖模型:
namespace Jaff.WebUI.Models
{
public class AdViewModel
{
public string Src { get; set; }
public string Place { get; set; }
public string Title { get; set; }
public string ClickUrl { get; set; }
public string Script { get; set; }
}
}
在Asp.net webforms中,這很容易。我可以在主頁中放置佔位符,並在其代碼隱藏中獲取數據...但是,我如何在MVC中執行操作? TempData是唯一的選擇嗎? –
你需要更好地解釋我的想法。所有的東西都存儲在你的視圖模型中,你爲什麼還想將它添加到TempData中? –
這兩個RenderAction方法怎麼不顯示相同? –