顯示具有 MVC 標籤的文章。 顯示所有文章
顯示具有 MVC 標籤的文章。 顯示所有文章

2015年6月12日 星期五

[MVC] 瘋狂發送了一堆 arterySignalR/poll 的 request



.NET MVC 會瘋狂發這種Request

How do I stop ASP.NET from sending 1000 poll requests 

GET http://localhost:56832/1c71cd8404f34693989ae85105c388c8/arterySignalR/poll?transport=longPolling&connectionToken=AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAAP5q4VI1aYkG73Qjc15vRQAAAAAACAAAAAAAQZgAAAAEAACAAAACYD3vHvvsQBcyldpAbdPD%2B%2FXCqmKwQPh%2FPCYkUWpNuHwAAAAAOgAAAAAIAACAAAAArGFNrtbAKafl4Zza50Znndit9CUb%2FUxL7ZkSDgLfspzAAAAC7bxQMEUafPkIyJdXrWuizotO3bxDf%2BGRZYi07dJ8pjqbSXOGxJmrQhx3GTVzP6hRAAAAADKmJ6J1amG5ZuCqfWkbGvFl3yHO9kgZdmIt6TmjYakLQepTUUzZlTsoyiUWz6VVJZ4HgMjkEpNRMpqrlO5QDcA%3D%3D&messageId=d-5AC8B2C-CA%2C0%7CCH%2C3%7CCI%2C0&requestUrl=http%3A%2F%2Flocalhost%3A58119%2FDefault.aspx&browserName=Firefox&tid=0&_=1386850842869 HTTP/1.1
Host: localhost:56832
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/plain, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost:58119/Default.aspx
Origin: http://localhost:58119
Cookie: ASP.NET_SessionId=2hpyrlt5epkatwwkil2chwzt
Connection: keep-alive




  • In the Web.config file, add a key named “vs:EnableBrowserLink” with the value “false” in the appSettings section.
    <appSettings>
      <add key="vs:EnableBrowserLink" value="false"/>
    </appSettings>
          


form http://www.asp.net/visual-studio/overview/2013/using-browser-link#disabling



http://blog.darkthread.net/post-2014-02-11-browserlink-break-onbeforeunload-in-firefox.aspx




2014年6月26日 星期四

.NET MVC 筆記


MVC筆記

規劃兩個月製作MVC簡報,也告一段落了,紀錄其他延伸閱讀的筆記



ASP.NET MVC使用筆記
http://catchtest.pixnet.net/blog/post/29156132-asp.net-mvc%E4%BD%BF%E7%94%A8%E7%AD%86%E8%A8%98


格式化 Javascript
http://www.css88.com/tool/js_beautify/


ASP.NET MVC專案最佳化
http://blog.kkbruce.net/2013/07/asp-net-mvc-project-performance-security-up-tips.html#.U5_1ZvmSylA


確保傳輸資料的安全
http://ithelp.ithome.com.tw/question/10137427


使用输出缓存提高性能
http://www.360doc.com/content/11/0303/22/6101874_97895851.shtml


ASP.NET性能優化之讓瀏覽器緩存動態網頁

http://rritw.com/a/bianchengyuyan/_NET/20110915/128804.html


黑暗執行序 - ASP.NET MVC路由練習-API分版
http://blog.darkthread.net/post-2013-09-16-aspnet-mvc-versioning-via-routing.aspx



快快樂樂學LINQ系列
http://www.dotblogs.com.tw/hatelove/category/6084.aspx


如何提昇LINQ 的效能!?
http://flashlin.wordpress.com/2009/03/24/%E5%A6%82%E4%BD%95%E6%8F%90%E6%98%87linq-%E7%9A%84%E6%95%88%E8%83%BD/


ADO.Net Entity Framework : (二十) 提升EF執行速度方法
http://www.dotblogs.com.tw/asdtey/archive/2009/10/28/efimproveperformance.aspx?fid=58201




2014年6月23日 星期一

一般View與Partial View有什麼不同呢?



from : http://arthurmvc.blogspot.tw/2012/11/aspnet-mvcview.html


在上一章中,我曾提到過有關Controller的命名會受到限制,所有Controller都必需是Controller這幾個英文字作為結尾,同理可知,想必這裡應該也是在命名原則上作文章,是的!在View中若是以底線作為檔案名稱開頭的View,其意義就是這個View是一種Partial View!

    一般View與Partial View有什麼不同呢?
   我可以把它想作成:一般View是一個我們預期它為一個既完整又是最終的畫面呈現,而Partial View是畫中的某一部份。有的時候,一個View太過巨大在設計及維護上有著很高的障礙,為了避免太過複雜而讓自己陷入設計的泥淖,通常,會將一個View中的某幾個部份獨立出來成為Partial View。在本文前面所述,在專案的開發過程中,有的時候我們會發現某些頁面會有一個共同的部份,這個時候通常我們也會將其共同的部份切割出來成為一個Partial View並放置在Views/Share資料夾中共用。





2014年6月20日 星期五

[MVC] - ViewBag 裡使用方法(Method)

from: http://kevintsengtw.blogspot.tw/2012/04/aspnet-mvc-3viewbag-method.html#.U6QCbPmSylA



        //
        // GET: /ViewDataBag/
        public ActionResult func()
        {
            ViewData["func1"] = DateTime.Now;
            ViewBag.func1 = new Func<int, string>(GetStr);

            return View();
        }

        private string GetStr(int iNumber)
        {
            if (iNumber >= 60)
            {
                return iNumber.ToString() + " 及格";
            }
            else
            {
                return iNumber.ToString() + " 不及格";
            }
        }











2014年6月19日 星期四

[MVC] 停止瀏覽器快取網頁 for ASP.NET


From  http://jhshen.blogspot.tw/2010/07/for-aspnet-mvc.html



瀏覽器為了加速網頁讀取,通常會採用快取,
所以使用者登出後,按下"回上一頁"幾乎都可以看到登出前瀏覽過的資料。
要避免使用者登出後使用"回上一頁"功能,最簡單的方式就是讓頁面不被快取,
在網路上找了一些方法,都是在<head></head>裡面加上:
//將網頁設為立即過期。
<meta http-equiv="Expires" content="0" />
//舊寫法,為了增加相容性。
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma-directive" content="no-cache" />
<meta http-equiv="Cache-Directive" content="no-cache" />

不過這樣做,不知道為什麼在 IIS 6 的環境上,執行 ASP.NET MVC 的 Web Application 還是可以讓使用者按下"回上一頁"...
後來發現也可以直接加在 http response headers 上,
因此,改寫了一下專案裡面 base Controller 在 Initialize 時,設定 Response 的 cache 設定,設定如下:
protected override void Initialize(RequestContext requestContext)
{
    base.Initialize(requestContext);

    requestContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    requestContext.HttpContext.Response.Cache.SetExpires(DateTime.MinValue);
    requestContext.HttpContext.Response.Cache.SetNoStore();
}





2014年6月15日 星期日

[MVC] Two Html.ActionLink in a column using WebGrid

form http://forums.asp.net/t/1653111.aspx?Two+Html+ActionLink+in+a+column+using+Webgrid



columns: grid.Columns(


grid.Column("id"),
grid.Column("Name"),
grid.Column(header: "Actions", format: (item) =>
     new HtmlString(
           Html.ActionLink("Edit", "Edit", new { id = item.id } ).ToString()  +
           Html.ActionLink("Delete", "Delete", new { id = item.id } ) .ToString()
     )
)
)







2014年6月7日 星期六

[MVC] WebGrid 欄位用法

from:  http://stackoverflow.com/questions/4306683/how-to-make-a-mvc-3-webgrid-with-checkbox-column





  @{
    View.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";

    var usersGrid = new WebGrid(source: Model,
        rowsPerPage: 40);
}
@usersGrid.GetHtml(
        tableStyle: "grid",
        headerStyle: "head",
        alternatingRowStyle: "alt",
                columns: usersGrid.Columns(
                    usersGrid.Column(format: (item) => 
                         Html.ActionLink("Edit", "Edit", new { id = item.Id})),
                    usersGrid.Column("Surname")
        )
    )

usersGrid.Column(format: (item) => Html.CheckBox("Id"))







2014年5月17日 星期六

[MVC] Controller 和 Action




以下為controller提供的型別


型別簡介Controller Helper Methods
EmptyResult甚麼事都不做…
ContentResult回傳文字至瀏覽器,可以自行設定content-type。Content
FileResult回傳二位元資料,例如Server上的mp3等檔案。File
ViewResult呈現指定或是預設的View。View
PartialViewResult呈現指定或是預設的View樣板PartialView
RedirectToRouteResult如果產生HTTP 301、302則會重新導向到另外一個Action或是其他指定的URL、或是設定好的Router。RedirectToAction
RedirectToActionPermanent
RedirectToRoute
RedirectToRoutePermanent
RedirectResult如果產生HTTP 301、302則會導向至另外一個URL。Redirect
RedirectPermanent
JsonResult將.net 物件序列化成Json格式並回傳。Json
JavaScriptResult回傳一個JavaScript的程式碼片段,通常用於Ajax裡面。JavaScript
HttpUnauthorizedResult回傳HTTP 401 ( 未授權 )。None
HttpNotFoundResult回傳HTTP 404。HttpNotFound
HttpStatusCodeResult返回指定的HTTP代碼。



public ViewResult DemoViewResult()
{
return View(); // Views/Home/DemoActionResult.cshtml
}
public JsonResult Ajax()
{
return Json(new { Title = "AsFlexer", Url = "http://asflexer.com" });
}
public ActionResult DemoActionResult()
{
return View();
return Redirect("http://asflexer.com"); //轉址到別的網站
return RedirectToAction("DemoActionResult"); //連結轉到另一個Action
return HttpNotFound(); //
}






2014年5月1日 星期四

[javascript] JSON 入門


轉自 瞭解JSON格式


{0:"Tom", 1:"John", 2:"Amy", 3:"Ivy"} 


物件(object)用大括號 { }

陣列(array)用中括號 [ ]

先記住這概念

--------------------------------

線上JSON格式化的網站

http://www.jsoneditoronline.org



另外有些字元在JSON不能直接打,需要做跳脫的(escape character) 在這
有些大家都很熟悉,就不細講了

\"
\\
\/
\b
\f
\n
\r
\t

這裡有些字碼表供參考

http://en.wikipedia.org/wiki/List_of_Unicode_characters

[MVC] ViewModel 串聯多個資料表


以下三種方法:

*手動建立ViewModel

*建立SQL的View,並且關聯好,用ADO精靈自動產生Model

*在controller層,將另一個model存在viewbag傳到view層




http://kevintsengtw.blogspot.tw/2012/12/aspnet-mvc-viewmodel.html#.U13dsfmSylA

2014年4月29日 星期二

[MVC] View丟字串給Controller



How To Pass A String With A Form Value To Controller?

View丟字串給Controller

View的部分:

命名name屬性,等等直接對應到controller的參數名稱
示範html寫法和Razor寫法

        @using (Html.BeginForm())
{
   <ul>
       <li><input type="text" name="tbText1" /></li>
       <li>CM_PKey : @Html.TextBox("tbText2", "", new { @class = "cls" })</li>
   </ul>
            <p><input type="submit" name="name" value="Search"/></p>
        }


controller 接資料:


        [HttpPost]
        public ActionResult Details(string tbText1, string tbText2)
        {
            if(tbCMPKey.Length <= 0)
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

            int id = Convert.ToInt32(tbCMPKey);

            if (id == null)
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

            Opera o = context.Operas.Find(id);
            if (o == null)
                return HttpNotFound();

            return View(o);
        }


參考
http://www.dreamincode.net/forums/topic/286321-how-to-pass-a-string-with-a-form-value-to-controller/

延伸其他用法
FormCollection collection
http://microsoftmasterpiece.blogspot.tw/2013/01/mvc4-razor-how-to-get-value-from-view.html


2014年4月27日 星期日

[MVC] TempData、ViewData、ViewBag


Controller:

    ViewData["date1"] = DateTime.Now;
    ViewBag.date2 = DateTime.Now;


View:

    <div>
        @(((DateTime)ViewData["date2"]).ToShortDateString())
        <hr />
        @ViewBag.date1.ToShortDateString()
    </div>




from: http://www.dotblogs.com.tw/inblackbox/archive/2013/06/03/105240.aspx

1.ViewData
存放在物件中,生命週期為一個頁面。
Controller :
1public ActionResult Index()
2       {
3           ViewData["message"] = "訊息";
4           return View();
5       }
View :
1@ViewData["message"]
2.ViewBag
這是MVC 3 之後新增的,使用方式和ViewData一樣,差別在於ViewBag 使用 dynamic 型別,可免去手動轉型的麻煩,使用上較為方便,但也因為動態型別關係,速度上會略比ViewData來的慢(人體無感吧@@)。
Controller :

1public ActionResult Index()
2       {
3           ViewBag.message = "訊息";
4           return View();
5       }
View :
1@ViewBag.message
3.Temp Data
資料會儲存在Session 中,其生命週期為一個 Request,一旦Request結束就會被刪除。 因此我們可善用此特性讓資料跨不同Action傳遞至View,如RedirectToAction 中作使用,範例如下:




Controller :

01public ActionResult Index()
02{
03    TempData["status"] = "我是從index送過來的!";
04    return RedirectToAction("about");
05}
06 
07public ActionResult about()
08{
09    return View();
10}


http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html


 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template