當前位置:首頁 » 編程軟體 » aspnetmvc3高級編程

aspnetmvc3高級編程

發布時間: 2023-03-27 12:13:55

❶ asp.net mvc3 項目怎麼開發API介面

Visual Studio為我們提供了專門用於創建ASP.NET Web API應用的項目模板,藉助於此項目模板提供的向導,我們可以「一鍵式」創建一個完整的ASP.NET Web API項目。在項目創建過程中,Visual Studio會自動為我們添加必要的程序集引用和配置,甚至會為我們自動生成相關的代碼,總之一句話:這種通過向導生成的項目在被創建之後其本身就是一個可執行的應用。

對於IDE提供的這種旨在提高生產效率的自動化機制,我個人自然是推崇的,但是我更推薦讀者朋友們去了解一下這些自動化機制具體為我們做了什麼?做這些的目的何在?哪些是必需的,哪些又是不必要的?正是基於這樣的目的,在接下來演示的實例中,我們將摒棄Visual Studio為我們提供的向導,完全在創建的空項目中編寫我們的程序。這些空項目體現在如右圖所示的解決方案結構中。
如右圖所示,整個解決方案一共包含6個項目,上面介紹的作為「聯系人管理器」的單頁Web應用對應著項目WebApp,下面的列表給出了包括它在內的所有項目的類型和扮演的角色。
·Common:這是一個空的類庫項目,僅僅定義了表示聯系人的數據類型而已。之所以將數據類型定義在獨立的項目中,只要是考慮到它會被多個項目(WebApi和ConsoleApp)所使用。
WebApi:這是一個空的類庫項目,表現為HttpController類型的Web API就定義在此項目中,它具有對Common的項目引用。
WebHost:這是一個空的ASP.NET Web應用,它實現了針對ASP.NET Web API的Web Host寄宿,該項目具有針對WebApi的項目引用。
SelfHost:這是一個空的控制台應用,旨在模擬ASP.NET Web API的Self Host寄宿模式,它同樣具有針對WebApi的項目引用。
WebApp:這是一個空的ASP.NET Web應用,代表「聯系人管理器」的網頁就存在於該項目之中,至於具體的聯系人管理功能,自然通過以Ajax的形式調用Web API來完成。
ConsoleApp:這是一個空的控制台應用,我們用它來模擬如何利用客戶端代理來實現對Web API的遠程調用,它具有針對Common的項目引用。
二、定義Web API
在正式定義Web API之前,我們需要在項目Common中定義代表聯系人的數據類型Contact。簡單起見,我們僅僅為Contact定義了如下幾個簡單的屬性,它們分別代表聯系人的ID、姓名、聯系電話、電子郵箱和聯系地址。
1: public class Contact
2: {
3: public string Id { get; set; }
4: public string Name { get; set; }
5: public string PhoneNo { get; set; }
6: public string EmailAddress { get; set; }
7: public string Address { get; set; }
8: }

表現為HttpController的Web API定義在WebApi項目之中,我們一般將ApiController作為繼承的基類。ApiController定義在「System.Web.Http.dll」程序集中,我們可以在目錄「%ProgramFiles%\Microsoft ASP.NET\ASP.NET Web Stack 5\Packages\」中找到這個程序集。具體來說,該程序集存在於子目錄「Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45」中。
Web API體現在如下所示的ContactsController類型中。在該類型中,我們定義了Get、Post、Put和Delete這4個Action方法,它們分別實現了針對聯系人的查詢、添加、修改和刪除操作。Action方法Get具有一個表示聯系人ID的可預設參數,如果該參數存在則返回對應的聯系人,否則返回整個聯系人列表。由於ASP.NET Web API默認實現了Action方法與HTTP方法的映射,所以方法名也體現了它們各自所能處理請求必須採用的HTTP方法。
1: public class ContactsController: ApiController
2: {
3: static List<Contact> contacts;
4: static int counter = 2;
5:
6: static ContactsController()
7: {
8: contacts = new List<Contact>();
9: contacts.Add(new Contact { Id = "001", Name = "張三",
10: PhoneNo = "0512-12345678", EmailAddress = "[email protected]",
11: Address = "江蘇省蘇州市星湖街328號" });
12: contacts.Add(new Contact { Id = "002", Name = "李四",
13: PhoneNo = "0512-23456789", EmailAddress = "[email protected]",
14: Address = "江蘇省蘇州市金雞湖大道328號" });
15: }
16:
17: public IEnumerable<Contact> Get(string id = null)
18: {
19: return from contact in contacts
20: where contact.Id == id || string.IsNullOrEmpty(id)
21: select contact;
22: }
23:
24: public void Post(Contact contact)
25: {
26: Interlocked.Increment(ref counter);
27: contact.Id = counter.ToString("D3");
28: contacts.Add(contact);
29: }
30:
31: public void Put(Contact contact)
32: {
33: contacts.Remove(contacts.First(c => c.Id == contact.Id));
34: contacts.Add(contact);
35: }
36:
37: public void Delete(string id)
38: {
39: contacts.Remove(contacts.First(c => c.Id == id));
40: }
41: }

簡單起見,我們利用一個靜態欄位(contacts)表示存儲的聯系人列表。當ContactsController類型被載入的時候,我們添加了兩個ID分別為「001」和「002」的聯系人記錄。至於實現聯系人CRUD操作的Action方法,我們也省略了必要的驗證,對於本書後續的演示的實例,我們基本上也會採用這種「簡寫」的風格。

❷ MVC 哪本書比較好 C#的

《asp.net mvc3.0 高級編程》,mvc3 就這本被翻譯為中文了。 亞馬遜 等等,都有賣的,我當時是從淘寶上買的盜版的,不貴。

❸ asp.net mvc3 動態菜單怎麼實現

asp.net mvc3 動態菜單實現方法如下:
1、查看代碼
@{
ViewBag.Title = "Elixir ERP V1.0 Beta";
Layout = "~/Views/Shared/_LayoutUser.cshtml";
}
<div class="main-container">
<div class="main-wrapper">
<div class="scroll-top">
<a href="#" class="tip-top" title="Go Top"><i

class="icon-arrow-up"></i></a>
</div>
<div class="left-bar merge-left">
<!-- SEARCH BAR -->
<!-- LEFT NAV -->
@section leftnav{
}
</div>
</div>
<div class="container">
</div>
</div>

2、菜單模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Elixir.Models
{
public class Menu
{
public Menu()
{
MenuItems = new List<MenuItem>();
}

public int Id { get; set; }
public string Name { get; set; }
public List<MenuItem> MenuItems { get; set; }
}
}

3、菜單項
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Elixir.Models
{
public class MenuItem
{
public int Id { get; set; }
public int UserName { get; set; }
public string Name { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
public string Url { get; set; }
public Menu ParentMenu { get; set; }
}
}

4、導航模型結構
<div class="left-nav">
<ul class="side-navigation accordion"
id="nav-accordion">
<li><a href="#"><i
class="icon-home"></i>Home</a></li>
<li><a href="#"><i class="icon-list-alt"></i>User
Management</a>
<ul><li><a href="#"><i
class="icon-double-angle-right"></i>Create New User</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Manage Users</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>View Users</a></li>
</ul>
</li>
<li><a href="#"><i

class="icon-table-2"></i>Employee Management</a>
<ul>
<li><a href="#"><i

class="icon-double-angle-right"></i>Employee Registration</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Manage Employees</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>View Employees</a></li>
</ul>
</li>
<li><a href="#"><i class="icon-columns"></i>DMIT

Management</a>
<ul>
<li><a href="#"><i

class="icon-double-angle-right"></i>Scan Management</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Report Generation</a></li>
</ul>
</li>
<li><a href="#"><i

class="icon-laptop"></i>Franchise Management </a>
<ul>
<li><a href="#"><i

class="icon-double-angle-right"></i>Franchise Registration</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Franchise Fee Management</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Franchise Account

Management</a></li>
</ul>
</li>
<li><a href="#"><i class="icon-font"></i>Customer

Management </a>
<ul>
<li><a href="#"><i

class="icon-double-angle-right"></i>Customer Registration</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Manage Customer</a></li>
</ul>
</li>
<li><a href="#"><i

class="icon-cord"></i>Counseling Management</a>
<ul>
<li><a href="#"><i

class="icon-double-angle-right"></i>Add Counseling Session</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Manage Counseling

Sessions</a></li>
</ul>
</li>
<li><a href="#"><i

class="icon-tools"></i>Accounts</a>
<ul>
<li><a href="#"><i

class="icon-double-angle-right"></i>Manage Income</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Manage Expense</a></li>
</ul>
</li>
<li><a href="#"><i

class="icon-files"></i>Reports</a>
<ul>
<li><a href="#"><i

class="icon-double-angle-right"></i>Elxir Monthly Reports</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Elixir Yearly Reports</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Franchise Monthly

Reports</a></li>
<li><a href="#"><i

class="icon-double-angle-right"></i>Franchise yearly Reports</a></li>
</ul>
</li>
</ul>
</div>

❹ asp.net mvc3 怎樣用ajax實現局部刷新的時候改變地址欄中url

那時不行D,地址欄就是你當前瀏覽的頁面地址,所以除非你重新載入另一個地址,否則地址欄是不會變的。

❺ ASP.NET MVC編程模型包含Models、Views、Controllers,優點是什麼

在說MVC優缺點前必須了解什麼是MVC。M是指業務模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。其中,View的定義比較清晰,就是用戶界面。
優點
1.耦合性低
視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。因為模型與控制器和視圖相分離,所以很容易改變應用程序的數據層和業務規則。
2.重用性高
MVC模式允許使用各種不同樣式的視圖來訪問同一個伺服器端的代碼,因為多個視圖能共享一個模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap),比如,用戶可以通過電腦也可通過手機來訂購某樣產品,雖然訂購的方式不一樣,但處理訂購產品的方式是一樣的。由於模型返回的數據沒有進行格式化,所以同樣的構件能被不同的界面使用。
3.部署快,生命周期成本低
MVC使開發和維護用戶介面的技術含量降低。使用MVC模式使開發時間得到相當大的縮減,它使程序員鍵慎沒(java開發人員)集中精力於業務邏輯,界面程序員(HTML和JSP開發人員)集中精力於表現形式上。
4.可維護性高
分離視圖層和業務邏輯層也使得WEB應用更易於維護和修改。
缺點
1.完全理解MVC比較復雜。
由於MVC模式提出的時間不長,加上同學們的實踐經驗不足,所以完全理解並掌握MVC不是一個很容易的過程。
2.調試困難。
因為模型和視圖要嚴格的分離,這樣也給調試應用程序帶來了一定的困難,每個構件在使用之前都需要經過徹底的測試。
3.不適合小型,中等規模的應用程序
在一個中小型的應用程序中,強制性的使用MVC進行開發,往往會花費大量時間,並且不能體現MVC的優勢,同時會使開發變得繁瑣。
4.增加系統結構和實現的復雜性
對於簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結構的復雜性,並可能產生過多的更新操作,降低運行效率。
5.視圖與控制器間的過於緊密的連接並且降低了視圖對模型數據的訪問
視圖與控制孝仔器是相互分離,但卻是聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。
依據模型操作介面的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。稿納

❻ 前輩們,有沒有好的全面的中文的關於asp.net MVC3的教程如PDF或Word,最好是asp.net 4.0的,謝謝

中文的很少,看侍衫看這個吧答隱

http://www.inxproj.com/tech/142

不過還是建議你多看英文的,這只是入門而已清談廳...........

❼ ASP.NET MVC3中如何創建文件夾

string filePhysicalPath = Server.MapPath("~/image/newDir/");
if (!Directory.Exists(filePhysicalPath))//判斷上傳文件夾是否存在,若不存在,則創建
{
Directory.CreateDirectory(filePhysicalPath);//創建文件夾
}

這樣才可以的哦,關鍵在這個「~」符號
……………………………………………………………………

如果對aspnet感興趣,看看一個大專生怎麼自學aspnet到找到工作。
先做個自我介紹,我07年考上一所很爛專科民辦的學校,學的是生物專業,具體的學校名稱我就不說 出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不 到希望,我就退學了。
退學後我也迷茫,大專都沒有畢業,我真的不知道我能幹什麼,我在糾結著我能做什麼。所以輟學後 我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業務。我想應聘 做技術的,可是處處碰壁。
一次偶然的機會,我才聽到aspnet這個行業。那天我去新華書店,在計算機分類那邊想找本書學習 。後來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學習aspnet,然後給我介紹了一下 aspnet現在的火熱情況,告訴我學aspnet多麼的有前景,給我了一份傳單,aspnet培訓的廣告。聽了 她的介紹,我心裡癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。
回家後,我就上網查了下aspnet,確實是當今比較熱門的行業,也是比較好找工作的,工資也是相 對比較高。我就下決心想學aspnet了。於是我去找aspnet培訓的相關信息,說真的,我也很迷茫,我 不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
後來,我在網路知道看到一篇讓我很鼓舞的文章是一個aspnet高手介紹沒有基礎的朋友怎麼自學入 門學aspnet,文章寫的很好,包含了如何學習,該怎麼學習。他提到一個方法就是看視頻,因為看書實 在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什麼別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會 我再去培訓。
主意一定,我就去搜索aspnet的視頻,雖然零星找到一些aspnet的視頻,但是都不系統,我是想找 一個能夠告訴我該怎麼學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教, 不懂可以請教的。
後來我又找到一份很好的視頻,是在IT學習聯盟推出的一份視頻《零基礎aspnet就業班》(喜歡《 零基礎aspnet就業班》的可以復制 sina.lt/bsjr 粘貼瀏覽器地址欄按回車鍵即打開)
下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。
收到他們寄過來的光碟後,我就開始學習了,由於我沒有什麼基礎,我就從最簡單的C#語言視頻教程 學起,話說簡單,其實我還是很多不懂的,只要重復多看幾遍,就能看懂。C#語言我差不多學了一個禮 拜,接下來我就學了winform,sql Server,html/css/javaScript,差不多也就三個禮拜。我每天都在不 停的寫一些簡單的代碼,這樣一月後我基本掌握了aspnet的全部基礎。
接下來開始學習aspnet高級課程,老師幽默風趣而又輕松的課堂教課,使我發現原來學習aspnet並 不是一件很難的事情。之前我把aspnet基礎學得還不錯,到了到了aspnet高級部分,我覺不又不是很 難,可能老師太牛了,他能把復雜的問題講的比較通俗易懂,有些難點的地方我還是連續看了五六次, 把他弄懂。每天下午6點下班後,吃了飯,馬上跑回家。看視頻,買了幾本筆記本。當時,為了編程還花幾百元了台二手的台式電腦,配置一般,但編程是足夠的。一邊看視頻,一邊記筆記,把重點都記下來,還一邊跟著老師敲代碼,為了能盡早學會aspnet。每天都堅持學5-6個小時。經常學到晚上一點多才睡覺。星期六,日不用上班,每天7點多起床,學到晚上11,12點。那段時間特別辛苦,特別累。在學習aspnet的三個多月里,除了吃飯睡覺工作,剩餘的時間都在學習,因為我知道自己的計算機基礎不是很好,也沒有學過什麼計算機,相對於那些科班的人來說我要比他們付出更多的努力。我只能咬緊牙關,堅持下去,我不能放棄,我要完成我的夢想,我要讓我的家人過上好日子。終於三個多月後我把aspnet教程里的內容和項目都學完了,在學項目的過程中我發現項目特別重要,他能把你學過的知識全部聯系起來,能更好的理解你所學的知識。還有學習過程中,動手很重要,要經常跟著老師動手敲,動手吧,跟著做,一行一行的跟著敲,再試著加一些自己的功能,按照自己的思路敲一些代碼,收獲遠比干聽大的多。 如果遇到暫時對於一些思路不能理解的,動手寫,先寫代碼,慢慢你就會懂了。
於是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業,說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過後,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了准備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。
後來陸續面試了幾家公司,終於功夫不負有心人。我終於面試上的,是在閔行的一家民營的企業,公司規模比較小,我的職務是aspnet開發程序員,但我也比較滿足,開的工資是3500一個月,雖然我知道在上海3500隻能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養,我自己也能養活自己的。我想只要我繼續努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。

……………………………………………………

❽ 最近剛接觸.net,用asp.net mvc3來實現一個注冊登錄模塊。資料庫用mysql。怎麼實現和資料庫的連接

查詢方法
public static DataSet ExecuteMySql(string strSQL)
{
//這里做些修改
MySqlConnection con = new MySqlConnection(「Host = 192.168.0.10;Port = 3306;User Id=root;Password=1234;Persist Security Info=True;Database=smsprodb_mysql」);
MySqlDataAdapter da = new MySqlDataAdapter(你的sql語句, con);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();

return ds;
}
增刪改方法
public static DataSet UpdataMySql(string strSQL)
{
//這里做些修改
MySqlConnection con = new MySqlConnection(「Host = 192.168.0.10;Port = 3306;User Id=root;Password=1234;Persist Security Info=True;Database=smsprodb_mysql」);
MySqlcommand sqlcom=new MySqlcommand ();
sqlcom.Connection=con;
sqlcom.CommandString=「你的sql語句";
sqlconnect.open();
DataReader dr=sqlcom.ExecuteReader();
int x=sqlcom.ExecuteNonQuery();
con.Close();
}

❾ 學習ASP.NET MVC 入門用哪本書好。

《asp.net mvc 3高級編程》
看著書名很高深莫測的樣子,其實也新手也可以用,屬於一本指導性的書籍,經常上網搜些資料,配合著使用

❿ asp.net mvc3 模糊查詢

使用Contains就行了,上邊橋好和那襪純行改為敏盯「.Where(c => c.pgm_name.Contains(pgm_name) ) 」就行了。

熱點內容
網易我的世界監獄風雲的伺服器 發布:2024-04-20 22:35:41 瀏覽:185
linux服務自動重啟 發布:2024-04-20 22:34:54 瀏覽:961
編譯器最後的結果 發布:2024-04-20 22:30:38 瀏覽:820
安裝linuxoracle11g 發布:2024-04-20 22:29:02 瀏覽:532
android設置權重 發布:2024-04-20 22:20:08 瀏覽:724
什麼手機安卓系統80 發布:2024-04-20 21:37:29 瀏覽:379
浙江萬里的伺服器地址 發布:2024-04-20 21:16:59 瀏覽:407
ndklinux下載 發布:2024-04-20 21:05:22 瀏覽:566
王者榮耀解壓資源包97 發布:2024-04-20 20:46:10 瀏覽:397
蘋果手機沒有密碼怎麼打開 發布:2024-04-20 20:45:25 瀏覽:93