我有一个愚蠢的问题:在我的控制器中我设置:
ViewBag.totalCount = 20
Run Code Online (Sandbox Code Playgroud)
在我要调用的视图中:
@Html.Pager(8, 1, @ViewBag.totalCount);
Run Code Online (Sandbox Code Playgroud)
但我认为ViewBag无法识别,因为整个方法调用在VS中有下划线.它必须是简单的东西.我怎么能这样呢?谢谢!
我在我将要开展的项目中偶然发现了这个:
public int? OrgId
{
get { return base["OrgId"] as int?; }
set { base["OrgId"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
点击OrgId,Resharper带我去看这个签名的方法:
public override object this[string propertyName] { get; set; }
Run Code Online (Sandbox Code Playgroud)
base [""]做什么?什么意思是覆盖的这个[]部分?在Google上找不到任何有意义的内容.
我是一名初级开发人员,他已经掌握了基础知识并且也有一些经验,但是当谈到从头开始构建项目时,我在编写良好的可维护代码方面毫无用处.我知道有很多设计模式用于此目的,而且我也知道asp.net MVC3.现在,我是否需要阅读asp.net设计模式书籍才能成为asp.net的优秀架构师,还是应该专注于MVC,因为它是新的更好的设计模式?我有这样的印象,设计模式和MVC是分开的,因为MVC是它自己的"强制"设计模式.我需要为自己澄清这一点并欣赏所有答案!谢谢.
model-view-controller asp.net-mvc design-patterns coding-style asp.net-mvc-3
我有一个List传递给我在ViewBag中的视图:
public ActionResult ContactUs()
{
List<SelectListItem> reasons = new List<SelectListItem>();
reasons.Add(new SelectListItem
{
Selected = true,
Text = "Billing/Payment question",
Value = "Billing/Payment question"
});
reasons.Add(new SelectListItem
{
Text = "Complaint",
Value = "Complaint"
});
ViewBag.reasons = reasons;
return View();
}
[HttpPost]
public ActionResult ContactUs(ContactUs form)
{
//some code
return View("ContactUs");
}
Run Code Online (Sandbox Code Playgroud)
模型:
[Required]
public String Reason { get; set; }
Run Code Online (Sandbox Code Playgroud)
教职员:
@model #####.ViewModels.ContactUs
@using (Html.BeginForm("ContactUs","Home", FormMethod.Post))
{
@Html.DropDownListFor(Model => Model.Reason, (IEnumerable<SelectListItem>) ViewBag.reasons);
}
Run Code Online (Sandbox Code Playgroud)
我需要创建一个下拉列表,也许DropDownList("reason")(应该是更好的编写方式)形成ViewBag.reasons并将选定的值传递给我的Model,作为属性String Reason.只是混淆了DropDownList/DropDownListFor的用法.谢谢!
看完一些文章后仍然感到困惑.为什么更改StringBuilder的值会改变而DateTime的值不会改变?根据我的理解,两者都是引用类型:
class Program
{
static void Main(string[] args)
{
DateTime myDt = DateTime.MinValue;
Change(myDt);
Console.WriteLine(myDt);
StringBuilder y = new StringBuilder();
y.Append("hello");
Foo(y);
Console.WriteLine(y);
String test = "hello";
Foo(test);
}
public static void Change(DateTime dt)
{
dt.AddDays(24);
//or dt=dt.AddDays(24);
}
static void Foo(StringBuilder x)
{
x.Append(" world");
}
static void Foo(String x)
{
x = x + " world";
}
}
Run Code Online (Sandbox Code Playgroud) 这很简单,但我无法弄明白.我想找到这个正则表达式的子字符串.它将是马赫"M4N 3M5",但不符合以下内容:
const string text = "asdf M4N 3M5 adsf";
Regex regex = new Regex(@"^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$", RegexOptions.None);
Match match = regex.Match(text);
string value = match.Value;
Run Code Online (Sandbox Code Playgroud)