2012-10-27 60 views

回答

3

控制器的工作(其中之一)是建立這給視圖模型查看足夠的信息以正確呈現。換句話說,控制器和視圖只應該鬆散耦合。

以下是一種方法。雖然可以更優雅地完成,但這有點解耦。您仍然需要JavaScript來執行客戶端腳本,但腳本是基於視圖模型中的值生成的。

控制器

public ActionResult Foo(){ 

    var model = new MyViewModel(); 
    model.SelectedItem = "FirstName"; 

    return View(model); 
} 

查看

@model MyViewModel 

@Html.TextBoxFor(o => o.FirstName) 

@if(Model.SelectedItem != default(string)){ 
    <script>$("#@(Model.SelectedItem)").focus();</script> 
} 
3

有一件事你必須瞭解網絡的發展是,你可以在服務器上擁有世界上所有的技術,但在最後,這些技術必須生成標準(或通過它)Html,CSS和JavaScript。

這意味着沒有特殊的魔法可以在服務器上自動完成客戶端上的事情。一些框架可以自動生成代碼來爲你做這件事,但它仍然必須作爲標準的html/css/js來完成。

MVC只呈現標準的純HTML。 Webforms將爲您做很多事情,但最終Webforms還必須生成標準HTML。它通過自動生成的javacript來實現這一點,該頁面包含在頁面上,加載時設置焦點。

MVC不會爲你做任何這些事情,所以你基本上必須做同樣的事情,但你必須寫它。使用一些簡單的jquery相對簡單。