vb.net mvc3相关教程http://www.asp.net/mvc/overview/older-versions/getting-started-with-aspnet-mvc3/vb/adding-a-view

asp.net mvc3太多了,不列举了。

vb.net 相关基础

http://www.lob.cn/jq/kfjq/1933.shtml

Visual Basic
 复制代码
Dim namedCust = New Customer With {.Name = "Terry Adams"}

匿名类型没有可用的名称。因此,匿名类型的实例化不能包含类名称。

Visual Basic
 复制代码
Dim anonymousCust = New With {.Name = "Hugo Garcia"}

开始正文 asp.net 原文是http://www.cnblogs.com/willick/p/3418517.html

使用 MVC Unobtrusive Ajax

在 MVC 中使用 Unobtrusive Ajax ,首先要将其“开启”,需要做两个动作。一个是配置根目录下的 Web.config 文件,在 configuration/appSettings 节点下的 UnobtrusiveJavaScriptEnabled 值设为 true,如下所示:

...
<configuration>
<appSettings>
...
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
</configuration>
...

UnobtrusiveJavaScriptEnabled 的值在程序创建的时候默认为true,在开发的时候有时候只需要检查一下。第二个动作就是在需要使用 MVC Unobtrusive Ajax 的 View 中引入jquery库和jquery.unobtrusive-ajax.min.js文件,一般更为常见的是在 /Views/Shared/_Layout.cshtml 中引入,如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
</head>
<body>
@RenderBody()
</body>
</html>

现在我们来做一个使用 Unobtrusive Ajax 的例子,从服务器获取一个简单的用户列表。为此我们需要准备一个Model,如下:

namespace MvcApplication1.Models {
public class Person {
public string ID { get; set; }
public string Name { get; set; }
public Role Role { get; set; }
} public enum Role {
Admin, User, Guest
}
}

我一般习惯先写后台方法,再写UI。创建一个名为 People 的 controller, 在该 controller 中写好要用的 action,代码如下:

public class PeopleController : Controller {
private Person[] personData = {
new Person {ID = "ZhangSan", Name = "张三", Role = Role.Admin},
new Person {ID = "LiSi", Name = "李四", Role = Role.User},
new Person {ID = "WangWu", Name = "王五", Role = Role.User},
new Person {ID = "MaLiu", Name = "马六", Role = Role.Guest}
}; public ActionResult Index() {
return View();
} public PartialViewResult GetPeopleData(string selectedRole = "All") {
IEnumerable<Person> data = personData;
if (selectedRole != "All") {
Role selected = (Role)Enum.Parse(typeof(Role), selectedRole);
data = personData.Where(p => p.Role == selected);
}
return PartialView(data);
} public ActionResult GetPeople(string selectedRole = "All") {
return View((object)selectedRole);
}
}

这里添加了 GetPeopleData action方法,根据 selectedRole 获取用户数据并传递给 PartialView 方法。

接着为 GetPeopleData action 创建一个partial view:/Views/People/GetPeopleData.cshtml ,代码如下:

@using MvcApplication1.Models
@model IEnumerable<Person> @foreach (Person p in Model) {
<tr>
<td>@p.ID</td>
<td>@p.Name</td>
<td>@p.Role</td>
</tr>
}

再创建我们的主视图 /Views/People/GetPeople.cshtml,代码如下:

@using MvcApplication1.Models
@model string @{
ViewBag.Title = "GetPeople";
AjaxOptions ajaxOpts = new AjaxOptions {
UpdateTargetId = "tableBody"
};
} <h2>Get People</h2>
<table>
<thead><tr><th>First</th><th>Last</th><th>Role</th></tr></thead>
<tbody id="tableBody">
@Html.Action("GetPeopleData", new { selectedRole = Model })
</tbody>
</table>
@using (Ajax.BeginForm("GetPeopleData", ajaxOpts)) {
<div>
@Html.DropDownList("selectedRole", new SelectList(
new[] { "All" }.Concat(Enum.GetNames(typeof(Role)))))
<button type="submit">Submit</button>
</div>
}

vb.net格式的  model

Public Class Person
Private _iD As String
Public Property ID() As String
Get
Return _iD
End Get
Set(ByVal value As String)
_iD = value
End Set
End Property Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property Private _role As Role
Public Property Role() As String
Get
Return _role
End Get
Set(ByVal value As String)
_role = value
End Set
End Property End Class Public Enum Role
Admin
User
Guest
End Enum

PeopleController 代码 这里要注意一点 with 用法,还有默认值可选项 ,还有拉姆达表达式转换

Namespace MvcApplication1
Public Class PeopleController
Inherits System.Web.Mvc.Controller Dim personData() As Person = {
New Person With {
.ID = "ZhangSan", .Name = "张三", .Role = Role.Admin
},
New Person With {
.ID = "LiSi", .Name = "李四", .Role = Role.User
},
New Person With {
.ID = "WangWu", .Name = "王五", .Role = Role.User
},
New Person With {
.ID = "MaLiu", .Name = "马六", .Role = Role.Guest
}
}
'
' GET: /People Function Index() As ActionResult
Return View()
End Function
Public Function GetPeopleData(Optional ByVal selectedRole As String = "All") As PartialViewResult
Dim data As IEnumerable(Of Person) = personData
If (selectedRole <> "All") Then
’Dim selected As Role = CType(selectedRole, Role)

Dim selected As Role = CType([Enum].Parse(GetType(Role), selectedRole), Role)'更改后的
                   ' Role selected = (Role)Enum.Parse(typeof(Role), selectedRole);

                data = From p In personData Where p.Role = selected
End If
Return PartialView(data)
End Function Public Function GetPeople(Optional ByVal selectedRole As String = "All") As ActionResult
Return View(CType(selectedRole, Object))
End Function End Class
End Namespace

视图需要注意的地方是:html标签的写法,不能像asp.net中那样随便写了,必须在前面加一个@符号 ,否则出现错误。

GetPeopleData 视图

@Imports MvcApplication1.Models @*可以不写的*@
<table>
@For Each p As MvcApplication1.Person In Model @<tr>
<td>@p.ID</td>
<td>@p.Name</td>
<td>@p.Role</td>
</tr>
Next
</table>

GetPeople 视图

@*@Imports MvcApplication1.Models 可以省略*@
@Code
ViewData("Title") = "GetPeople"
Dim ajaxOpts As AjaxOptions = New AjaxOptions With {
.UpdateTargetId = "tableBody"
}
End Code <h2>GetPeople</h2>
<table>
<thead><tr><th>First</th><th>Last</th><th>Role</th></tr></thead>
<tbody id="tableBody">
@Html.Action("GetPeopleData", New With {.selectedRole = Model})
</tbody>
</table>
@Using Ajax.BeginForm("GetPeopleData", ajaxOpts) @<div>
//这里没有转换成功,需要学习 终于成功了

@Html.DropDownList("selectedRole", New SelectList(
New Object() {"All"}.Concat([Enum].GetNames(GetType(MvcApplication1.Role)))))

<button type="submit">Submit</button>
</div> End Using
new[] 对应的vb.net 是  New  Object()
没有实现,一直挂在心头,今天终于成功了!也是偶然。

显示效果 图

点击submit后显示

记录一下。

 

MVC3 之asp.net 与vb.net 互转练习的更多相关文章

  1. 分享自制的C#和VB Code互转工具

    分享自制的C#和VB Code互转工具 作为.NET程序员,往往习惯使用一种语言(据我观察,2006年后的程序员习惯用C#,之前的喜欢VB).而对于另一种语言虽然能读懂但是写起来总是比较费事.尤其面对 ...

  2. 在MVC3或asp.net中修改KindEditor实现上传图片时添加水印

    主要修改两个文件:image.js和upload_json.ashx文件. 一.修改image.js文件 打开kindeditor/plugins/image目录下的image.js文件,找到 '&l ...

  3. ASP.NET与json对象互转

    这两天写这个xml跟json的读写,心累啊,也不是很理解,请大家多指教 首先来个热身菜做一个简单的解析json 在script里写一个简单的弹窗效果 <script> //script里简 ...

  4. Asp.Net时间戳与时间互转

    /// <summary> /// 时间戳转成时间类型 /// </summary> /// <param name="timeStamp">& ...

  5. ASP.NET MVC3升级到ASP.NET MVC4 的方法

    ASP.NET MVC3升级 ASP.NET MVC4 的方法: 1.先去掉引用的System.Web.Mvc.dll(MVC3版本),重新引入System.Web.Mvc.dll(MVC4版本) 2 ...

  6. Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter

    前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接 ...

  7. ASP.NET MVC3 系列教程 - 目录

    ASP.NET MVC3 系列教程 - 目录   I:ASP.NET MVC3 新增的功能 ASP.NET MVC3 系列教程 - Razor视图引擎基础语法ASP.NET MVC3 系列教程 - V ...

  8. asp 调用 vb(activex dll) ,参数传递(传引用)需要注意

    今天上午测试 vb 与 c(dll) 之间交互,传递参数的时候,没遇到什么太大的问题. 下午在asp中调用vb(activex dll)时, 在asp代码中传参数到 vb(dll)中时,遇到问题了. ...

  9. asp <----> vb(com,dll) <---> c 来回的调用,生命在于折腾

    最近想改进一个两年前写的小程序,原因是最近将运行在托管服务器上的asp程序迁移到阿里云主机上运行. 初次使用阿里云主机,买了一个配置较低的主机(1核,1G内存,年付:1500左右吧) 原来使用的托管的 ...

随机推荐

  1. Python开发【模块】:Urllib(二)

    Urllib实战 1.爬取糗事百科中段子和用户名: 代码实例: # 爬取网站页面内容 import re import urllib.request url = 'https://www.qiushi ...

  2. Flex 布局:实例篇

    上一篇文章介绍了Flex布局的语法,今天介绍常见布局的Flex写法.你会看到,不管是什么布局,Flex往往都可以几行命令搞定. ​ 我只列出代码,详细的语法解释请查阅<Flex布局教程:语法篇& ...

  3. win安装mysql

    在这讲解的是有关于通过zip解压安装MySQL的方法.有看了网上的其它的教程,讲的有些不够完善,也自己写一篇简述一下.个人还是建议看官方的参考文档非常之详细:https://dev.mysql.com ...

  4. thinkcmf安装教程与目录结构详解 快速上手版

    最近接了一个建站项目,要求用thinkcmf来搭建,ytkah在想php都大致一样吧,快速地下载安装包,可是!怎么安装呢?没看到安装指引文件或目录,查看了安装说明public目录做为网站根目录,入口文 ...

  5. 数据挖掘-逻辑Logistic回归

    逻辑回归的基本过程:a建立回归或者分类模型--->b 建立代价函数 ---> c 优化方法迭代求出最优的模型参数  --->d 验证求解模型的好坏. 1.逻辑回归模型: 逻辑回归(L ...

  6. IBM WebSphere MQ for net 报错 MQRC_NOT_AUTHORIZED

    最近进入新公司要维护以前的90年代的老系统 用NET对IBMMQ做测试 NET 4.0 +7.5 MQ 版本 待我写好NET调用的代码后出现错误MQRC_NOT_AUTHORIZED 折腾大半天往上找 ...

  7. Java基础知识陷阱(十)

    本文发表于本人博客. 上个星期由于时间比较紧所以未能继续写下去,今天再接再厉,专心 + 坚持这样离目标就越来越近了!废话少说说正题,今天我们还是来说说java中比较基础的知识,大家知道编写java程序 ...

  8. SQL面试题及答案

    我觉得里面有些答案是不正确的,请只作参考 Student(S#,Sname,Sage,Ssex) 学生表       S#:学号:Sname:学生姓名:Sage:学生年龄:Ssex:学生性别 Cour ...

  9. 线程、进程、daemon、GIL锁、线程锁、递归锁、信号量、计时器、事件、队列、多进程

    # 本文代码基于Python3 什么是进程? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行 ...

  10. Python: 字符串格式化format()函数的使用

    python从2.6开始支持format,新的更加容易读懂的字符串格式化方法,从原来的% 模式变成新的可读性更强的 花括号声明{}.用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, ...