这两天在构建Asp.net Mvc项目中,允许用户上传一个图片来当做自己的头像。
Html代码
<form method="post" enctype="multipart/form-data" action="/Home/UpLoadFile" >
<input type="file" id=”uploadfile” />
<input type="submit" value=”save” />
</Form>
Controller端代码
[HttpPost]
public ActionResult UpLoadFile( HttpPostedFileBase file)
{
return View();
}
奇怪的是哪个File永远是个Null,急死人了,一天的时间浪费了!!!
查阅无数网站,英文不好也要逼着自己搜英文网站,搞了大半天,在一个英文网站上看到一句:
上传文件控件必须要有name值,而且在Controller端的HttpPostedFileBase file中的file必需就是Upload控件的name值。
晕!!倒!!!
加上试试吧,代码如下
<form method="post" enctype="multipart/form-data" action="/Home/UpLoadFile" >
<input type="file" id=”uploadfile” name=”file” />
<input type="submit" value=”save” />
</Form>
Controller端的代码就不写了,和上面是一样的。
经过跟踪,File再也不是Null。
写此文以备忘!!!
在最近开发的项目中,应用了Html.LabelFor(TModel)来生成<lable/>标签,同时配合Html.TextBoxFor(TModel)来生成<Input/>标签,效果不错,生成的Html标签
效果如下:
<label for="UserName">标签内容</label>
<input id="UserName" name="UserName" type="text" value="" />
问题产生了:
<Lable>标签内容</Lable>准备实现多国语言版本,使用的是Resources文件。但是,Html.LabelFor()方法只支持Model的DisplayName属性:
public class User
{
[DisplayName="标签内容"]
public string DisplayName { get; set; }
public string SortName { get; set; }
}
问题是DisplayName属性不支持国际化,无法调用Resource中的资源字符串!(此处省略n万字,尝试各种解决方法,就不在此描述了,总之是不成功)
那就换个解决方案吧:
<%:Html.Label(Resources.User.Info_State_Header) %>
国际化的问题解决了,但是那个优雅的<label for=”UserName”>属性无法实现了!难道鱼与熊掌不能兼得吗?郁闷啊!
强大的Asp.net Mvc 框架不是吹牛皮吹出来的,上家伙
自定义HtmlHelper方法,直接上代码,大家都是高手,我就不解释了:
namespace System.Web.Mvc
{
public static class myHtmlHelper
{
/// <summary>
/// 自定义HtmlHelper Label方法,解决for属性和国际化字符串不能同时解决的问题
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <typeparam name="TValue"></typeparam>
/// <param name="?"></param>
/// <param name="expression"></param>
/// <param name="DisplayName">要在Label标签中显示的本地化字符串</param>
/// <returns></returns>
public static MvcHtmlString Label<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression, string DisplayName)
{
string modelName = ExpressionHelper.GetExpressionText(expression);
TagBuilder tagBuilder = new TagBuilder("label");
tagBuilder.Attributes.Add("for",modelName);
tagBuilder.InnerHtml = DisplayName;
return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.Normal));
}
}
}
啊,问题消失了,继续干活吧,前面的道路还很长呢SharePoint是一个非常好的平台系统,在国内的应用还是不尽如人意。什么原因造成的这种情况呢?
大家网络上在网络上百度,Google一下,看到的文章90%以上是开发方面的。而这90%的开发文章中,几乎都是针对每一个小问题,例如Webpart等。
其实,真正的让一个应用系统能够很好的推广开来,一个真实的应用介绍是最好的。
但是国内这方面的书籍和网上的文章基本上是一片空白。英文书籍倒是有一本不错的Real World SharePoint2007,可惜国内一直看不到哪怕是一个章节的译文。像我这样只认识26个字母的人就是只能望书兴叹了。
哈哈,坐而言不如起而行!这个系列文章其实是写给自己看的,当然了,也欢迎大家拍砖。当然有鼓掌送鲜花的本人也可以笑纳。
闲话少说,书归正传!
本人所在公司是一家服装公司,基本上是按照事业部形式进行管理,所以上组织架构基本上按照如下排列:
董事长
总经理
总经理1
总经理2
……
总经理N(这么多总经理是为了管理不同的方向,哈哈,是BOSS定的,不是我说的)
XXX事业部
设计室
小组1
……
小组N
企划部
小组1
……
小组N
销售部
小组1
……
小组N
基本上的组织架构就是这样了,当然还有更复杂一些的,但是,这里表述的基本上就够用了。可以按照这样的组织结构来划分了。
下面就是对sharepoint系统的规划要求了:
1.公司肯定需要一个主页来承载各项内容。
2.各品牌事业部和其他和事业部平级的单位,也需要一个自己的部门主页来发布通知,部门文档,项目进度,时间规划等内容。
3.各事业部下面的小部门需要自己的平台,就是协同工作平台。
用Sharepoint2010来进行设计规划。大家觉得应该如何来进行总体的规划呢?
大家都说说吧,集思广益,我就算偷各位的师了!(偷着乐)
呵呵,不知道博客园有没有项目管理平台呢,大家都来建设一下,也算是开源的一种吧?
作者注:
想来想去,觉得还是把这个系列的文章标题改变一下吧,“实务”好像有些虚,改成这个标题吧!
另外预告一下下一章的内容
企业组织架构与活动目录域(ActiveDirectory)
Asp.Net Mvc 应用程序如何应对不同的URL地址?????,问题解决了
在上一篇博文中,本人碰到了实际应用中的一些问题。
可能是我问的问题有些弱智,害的高手们为了这个低智商的问题伤透了脑筋。还有位老大,不屑一顾的说不知道我要干什么!!!
其实在实际工作中,我想上文中描述的场景应该还是存在的。至少我现在就遇到了这个问题。
也可能是我在上一篇文章中没有把问题描述清楚,我其实是想寻找一种Asp.net Mvc 框架结构中的解决方案。
因为IIS服务器是一台,现在公司还没有能力添置更多的服务器,而且域名是在不同的时期申请的,领导要求将不同的域名绑定到一个Controller上。
各位高手给出的答案为3种:URL转发,二级域名CNAME,URL rewriter(Http Module) 。但是这些我都不熟,从头来浪费时间了。
绞尽脑汁思索解决方案,既然没有现成的,就自己啃吧!
在Google,Bing中按照URL,Asp.net Mvc等关键词搜啊搜,一篇一篇的看。
看着看着,突然脑海里闪出一丝光亮,解决方案有了。
解决方案:
将所有域名全部指向承载Asp.net Mvc应用程序的IIS服务器,这样用任何域名访问都是访问同样的一套Asp.net Mvc应用程序了。
在Asp.net Mvc应用程序的路由规则中定义:
AControllers(A子公司)
BControllers(B子公司)
CControllers(C子公司)
DControllers(D子公司)
HomeControllers(总公司)
这样就满足了最开始的系统要求,然后在路由规则的最后一条创建一条默认的规则,所有的URL都最先满足这一条,然后在这条规则的Action方法中如下操作:
string url=this.HttpContext.Request.Url.ToString(); if (url.Contains("www.A.com")) { return RedirectToAction("Index", "A"); } else { return RedirectToAction("Index", "Home"); }
当然这只是简单的演示,下一步还要从外部文件,例如Xml文件中读取转向规则,然后进行转向。
哈哈,应该思路还算是正确的吧!
Asp.Net Mvc 应用程序如何应对不同的URL地址?????
本人是个新手,各方面都是个新手。Asp.net Mvc 更是个新手,在实际工作中遇到了一些问题,抖胆将问题放在首页上,希望能等到一个好的回复。
本人正在使用Asp.net Mvc技术架构公司的网站。其他的问题暂时还没有出现,就是碰到了一个URL和Asp.net Mvc应用程序之间的对接问题。
公司为集团公司,下属4个子公司:
网站结构规划:
总公司
子公司A
子公司B
子公司C
子公司D
Asp.net MVC应用程序框架如下(Controllers目录下)
AControllers(A子公司)
BControllers(B子公司)
CControllers(C子公司)
DControllers(D子公司)
HomeControllers(总公司)
各公司的首页URL形式为
http://www.myUrl.com/index 总公司首页
http://www.myUrl.com/A/index A子公司首页
http://www.myUrl.com/B/index B子公司首页
http://www.myUrl.com/C/index C子公司首页
http://www.myUrl.com/D/index D子公司首页
其他的各级页面也都以此类推。
现在的问题是,我每个公司都有自己的域名。总公司为http://www.myurl.com,各个子公司分别为http://www.A.com,http://www.B.com,http://www.C.com,http://www.D.com。
领导要求从http://www.A.com访问的就是http://www.myUrl.com/A/index A子公司首页。
如何实现呢,Google了一天也没找到答案!!!
扔个砖头吧,盼望能有个老赵那样的高手砸给咱一块玉。O(∩_∩)O~