2011-01-26 16 views
0

コントローラのみを使用してビューを更新する方法ですか?ビューを更新するASP NET MVC 3.0

public ActionResult Index() 
{ 

    [Controller(Update = 10)] 

} 
+0

あなたは求めている強制する方法がありますブラウザはサーバーからリフレッシュするには? – JohnOpincar

+0

'[更新] = 10;'、どのようなプログラミング言語ですか?また、あなたの質問は感覚を奪われます。あなたがそれを閉じるために必要な5票を得る前に、より詳細を提供してください。 –

答えて

3

メタリフレッシュタグを挿入し、「自動更新」action属性を作成します。

public class AutoRefreshAttribute : ActionFilterAttribute 
{ 
    public const int DefaultDurationInSeconds = 300; // 5 Minutes 

    public AutoRefreshAttribute() 
    { 
     DurationInSeconds = DefaultDurationInSeconds; 
    } 

    public int DurationInSeconds 
    { 
     get; 
     set; 
    } 

    public string RouteName 
    { 
     get; 
     set; 
    } 

    public string ControllerName 
    { 
     get; 
     set; 
    } 

    public string ActionName 
    { 
     get; 
     set; 
    } 

    public override void OnResultExecuted(ResultExecutedContext filterContext) 
    { 
     string url = BuildUrl(filterContext); 
     string headerValue = string.Concat(DurationInSeconds, ";Url=", url); 

     filterContext.HttpContext.Response.AppendHeader("Refresh", headerValue); 

     base.OnResultExecuted(filterContext); 
    } 

    private string BuildUrl(ControllerContext filterContext) 
    { 
     UrlHelper urlHelper = new UrlHelper(filterContext.RequestContext); 
     string url; 

     if (!string.IsNullOrEmpty(RouteName)) 
     { 
      url = urlHelper.RouteUrl(RouteName); 
     } 
     else if (!string.IsNullOrEmpty(ControllerName) && !string.IsNullOrEmpty(ActionName)) 
     { 
      url = urlHelper.Action(ActionName, ControllerName); 
     } 
     else if (!string.IsNullOrEmpty(ActionName)) 
     { 
      url = urlHelper.Action(ActionName); 
     } 
     else 
     { 
      url = filterContext.HttpContext.Request.RawUrl; 
     } 

     return url; 
    } 
} 

次に、このようにそれを使用します。

[AutoRefresh(DurationInSeconds = 10)] 
public ActionResult Index() 
{ 

} 
関連する問題