我已经学习ASP.NET MVC几个月了.我已经了解了视图和控制器以及模型和内容.要设计视图,我们总是需要一个模型.通常,模型只是一个我们用数据填充并传递给视图的类.我在这里有一个问题:一个模型本身应该做一些计算,还是应该只是愚蠢?
例如,我有一个网站,我Book用Users 加载s.我的模型类如下:
public class FormViewModel
{
public User MyUser {get; set;}
public Books UserBooks {get; set;}
//Constructor here.
public FormViewModel(User _user, Books _userBooks)
{
this.MyUser=_user;
this.UserBooks=_userBooks;
}
}
Run Code Online (Sandbox Code Playgroud)
这个类没有做任何事情 - 它只是一个模板.现在,如果我修改代码如下:
public class FormViewModel
{
public User MyUser {get; set;}
public Books UserBooks {get; set;}
//Constructor here.
public FormViewModel(User _user)
{
this.MyUser=_user;
this.UserBooks=_user.GetBooks();
}
}
Run Code Online (Sandbox Code Playgroud)
Book收集哪些s取决于哪个User被选中.现在,它更容易使用.
我只是想知道根据MVC模式和实践,什么是一个好方法.
ViewEngineResult FindView方法在asp.net mvc中扮演什么角色,我们可以在此方法中更改视图位置.我可以理解VirtualPathProvider,但对FindView方法有些困惑.
帮助将不胜感激.
干杯
我有Html帮助方法,创建一个复选框以及一些文本,我通过.
@Html.CheckBoxFor(x => x.SomeProperty,@<text> <ul> <li> </li> </ul> </text>}))
public static MvcHtmlString CheckBoxFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, bool>> expression, ?? )
{
var chkBox = helper.CheckBoxFor(expression).ToString();
return MvcHtmlString.Create(string.Format("<li>{0}</li><div>{1}</div>", chkBox, ??);
}
Run Code Online (Sandbox Code Playgroud)
那么我的方法的签名是什么呢.一些lambda /表达式或其他东西.
帮助将不胜感激.
问候
成员Parminder
我有这样的对象.
public class BaseTable
{
public int ID { get; set; }
public int ParentID { get; set; }
public string Description { get; set; }
public bool IsActive { get; set; }
}
public class CarFuelType : BaseTable
{
}
Run Code Online (Sandbox Code Playgroud)
和一个测试课
public class Test
{
public IList<CarFuelType> GetAllActiveFuelTypes()
{
var result = GetAllActiveData<CarFuelType>(LookUpTableConstants.CarFuelType);
return result.Cast<CarFuelType>().ToList();
}
private IList<T> GetAllActiveData<T>(int filter)
{
var result = from c in _lookUpTableValuesRepository.GetAllRowsWhere(l => l.ParentID == filter && l.IsActive==true)
select new BaseTable{ ID = …Run Code Online (Sandbox Code Playgroud) 我现在有一个网站正在运行.我必须实现一些日志记录例程以及一些非常规异常的处理程序.我也在看ELMAH,这对我来说似乎很好.我需要一些非常轻便易用的东西.有人可以推荐我可以选择的任何其他选项.
谢谢Parminder
我正在开发一个项目,我有多个reposetories从不同的表中获取数据.我的所有存储库都是独立的,它们创建新的dataContext,向表中添加行并应用提交更改命令.现在,如果在我的服务中,有一种情况我必须将数据插入到多个表中,但它应该在一个事务中发生.我可以使用TrnasctionScope的东西实现这一点,但那需要相同的dataContext.当我使用StrucutreMap创建我的对象时,我无法获得相同的数据上下文,因此我的事务失败了.
这是我的对象是如何.
interface IConnection
{
MyDataContext GetContext();
}
public class Connection : IConnection
{
public MyDataContext GetContext()
{
return new MyDataContext();
}
}
interface IRepositryA
{
int SaveDataA(objectA a);
}
public class RepositoryA : IRepositryA
{
public int SaveDataA(objectA a)
{
var context = objectFactory.GetInstance<IConnection>().GetContext();
context.TableA.InsertOnSubmit(a);
context.SubmitChanges();
return a.ID;
}
}
interface IRepositryB
{
int SaveDataA(objectB b);
}
public class RepositoryA : IRepositryB
{
public int SaveDataB(objectB b)
{
var context = objectFactory.GetInstance<IConnection>().GetContext();
context.TableB.InsertOnSubmit(b);
context.SubmitChanges();
return b.ID;
}
}
Run Code Online (Sandbox Code Playgroud)
现在在我的服务层中,我将它们称为 …
我需要RegularExpressionValidator的正则表达式来验证名称.目前它是[A-Za-z'\ ]+.现在要求是用户名可以以连字符结尾,只有一个连字符,之后没有任何内容.
所以名字可以是john-,但不是-john而不是john--
asp.net ×3
asp.net-mvc ×3
c# ×3
c#-4.0 ×1
generics ×1
html-helper ×1
ilist ×1
linq ×1
linq-to-sql ×1
logging ×1
regex ×1
viewengine ×1