话说网络硬盘(1)

最近要做一个项目,说是实习结束前的最后一个项目,曰:在线OA。

负责网络硬盘方面的代码,所以顺便梳理一下在MVC3框架下的一些知识。这些我所遇到的问题依次解决之后,网络硬盘也就搞定了。

项目框架:MVC3

项目模板:网络硬盘

涉及表:R_User中的ID,UserName,I_NetDisk的UserID,其中UserID是ID的外键。

 

问题一:遇到需要权限用户修改自己上传文件的文件名时,其中需要显示文件上传者,这里设置显示框是dropdownlist,要求只能下拉,但是部分item没法选中。

http://topic.csdn.net/u/20120925/19/7ef7e134-df76-468f-9cec-7f5f2895d823.html?seed=467386425&r=79759057#replyachor

 

在WF上可以很轻易实现,两种:

1.设置readonly为true,居然还可以下拉;

2.想到只要在View层设置disabled为true即可,于是用JQuery但是Controller中却无法获得被设置的dropdownlist的value值,很蛋疼的事。很明显,View层是前台代码根据droplist来寻找到值的,若是设置了disabled,据我推测,这样导致前台找不到dropdownlist,也就获取不到值。

怎么办?

我在上面加个隐藏文本域绑定

1            @Html.HiddenFor(model => model.UserID)

2            @Html.DropDownList("UserID")

但是这样虽然获取到了值,disabled却失去了作用,dropdownlist照样能够下拉。

 

实在没办法

我只能用UserID代替UserName显示上传人编号了,

@Html.DropDownList("UserID")//显示的是所有的UserName信息
改为
@Html.Label("UserID")

但是这个就显得效果不好,因为当用户修改“文件名”,看到的编辑页码信息却是“上传者ID”,可不可以,有更好的方法呢?

效果图:

话说网络硬盘(1)


代码:
 1 @model inOffice.Models.I_NetDisk

 2 

 3 @{

 4     ViewBag.Title = "Edit";

 5 }

 6 

 7 <h2>编辑</h2>

 8 

 9 <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>

10 <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

11 <script src="http://www.cnblogs.com/Scripts/jquery-1.5.1.js" type="text/javascript"></script>

12 <script type="text/javascript">

13     $(document).ready(function () {

14         $("#UserID").attr("readonly", true);

15         $("#Type").attr("readonly", true);

16         $("#UserID").attr("enable", false);

17         $("#Pid").attr("readonly", true);

18         $("#FilePath").attr("readonly", true);

19         $("#FileType").attr("readonly", true);

20     });

21 </script>

22 @using (Html.BeginForm())

23 {

24     @Html.ValidationSummary(true)

25     <fieldset>

26         <legend>网络硬盘</legend>

27 

28         @Html.HiddenFor(model => model.ID)

29 

30         <div class="editor-label">

31             拥有者ID

32 @*            @Html.LabelFor(model => model.UserID, "R_User")*@

33         </div>

34         <div class="editor-field">

35 @*              @Html.Label("UserID")*@

36 @*            @Html.HiddenFor(model => model.UserID)*@

37 @*            @Html.DropDownList("UserID")*@

38 

39             @Html.EditorFor(model => model.UserID)

40  @*           @Html.EditorFor(model => model.R_User.UserName)*@

41 @*            @Html.Label(Request.Cookies["UserName"].Value)*@

42             @Html.ValidationMessageFor(model => model.UserID)

43         </div>

44 

45         <div class="editor-label">

46             类型

47 @*            @Html.LabelFor(model => model.Type)*@

48         </div>

49         <div class="editor-field">

50             @Html.EditorFor(model => model.Type)

51             @Html.ValidationMessageFor(model => model.Type)

52         </div>

53 

54         <div class="editor-label">

55             @Html.LabelFor(model => model.Pid)

56         </div>

57         <div class="editor-field">

58             @Html.EditorFor(model => model.Pid)

59             @Html.ValidationMessageFor(model => model.Pid)

60         </div>

61 

62         <div class="editor-label">

63             文件名

64 @*            @Html.LabelFor(model => model.Name)*@

65         </div>

66         <div class="editor-field">

67             @Html.EditorFor(model => model.Name)

68             @Html.ValidationMessageFor(model => model.Name)

69         </div>

70 

71         <div class="editor-label">

72             @Html.LabelFor(model => model.FilePath)

73         </div>

74         <div class="editor-field">

75             @Html.EditorFor(model => model.FilePath)

76             @Html.ValidationMessageFor(model => model.FilePath)

77         </div>

78 

79         <div class="editor-label">

80             @Html.LabelFor(model => model.FileType)

81         </div>

82         <div class="editor-field">

83             @Html.EditorFor(model => model.FileType)

84             @Html.ValidationMessageFor(model => model.FileType)

85         </div>

86 

87         <p>

88             <input type="submit" value="保存" />

89         </p>

90     </fieldset>

91 }

92 

93 <div>

94     @Html.ActionLink("返回文件列表", "Index")

95 </div>

 

 

你可能感兴趣的:(网络)