我想生成动态查询来检查管理where子句与可用参数的数量...如果某个参数为null我不想将它包含在where子句中
var test = from p in _db.test
where if(str1 != null){p.test == str} else i dnt wanna check p.test
Run Code Online (Sandbox Code Playgroud)
我有大约14个参数用于where子句
需要帮助,谢谢
我有MVC2的文件夹结构的问题
我怎么能用这种方式:
文件夹:
控制器
--Portal
----会计
------ CashController.cs
------ BankController.cs
---- HR
------ EmployeesController.cs模型
视图
--Portal
----会计
------现金
-------- Index.aspx
-------- List.aspx
------银行
---- ---- Index.aspx
------ HR
-------- Index.aspx
-------- Employee.aspx
我该如何使用这样的文件夹结构,如何使用正确的表单路由URL.
非常感谢
我们正在使用ASP.NET MVC构建一个封闭的系统.此演示系统中有多个接触点,但所有接触点都将运行浏览器.所有都将显示基本相同的数据,但目标在几个方面有所不同:
我的问题是:我应该为每个目标类型和页面创建一个单独的控制器,还是控制器应该以某种方式解释哪个目标类型并提供适当的视图?例如,我应该这样做:
TargetType1AccountController
TargetType1HomeController
TargetType2AccountController
TargetType2HomeController
或这个:
AccountController/TargetType1View
AccountController/TargetType2View
HomeController/TargetType1View
HomeController/TargetType2View
我正在使用ajax表单尝试使用Create方法回发CustomerController.这是代码
<% using (Ajax.BeginForm("Create", "Customer", new AjaxOptions { LoadingElementId = "saving"}, new { @class = "block_content form" }))
{%>...
Run Code Online (Sandbox Code Playgroud)
当我的html表单呈现时,表单看起来像这样
<form onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, loadingElementId: 'saving', onComplete: Function.createDelegate(this, $j('#accoutcreate').dialog('close')) });" onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));" method="post" class="block_content form" action="/Job/Create?Length=3"> ...
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,表单实际上是发布到/ Job/Create而不是/ Customer/Create
我不确定为什么会这样.有任何想法吗?
我正在.NET 4.0上构建一个ASP.NET MVC 2.0应用程序,并使用Structuremap 2.6.1 for IoC.我最近添加了一个ICookie和Cookie类,Cookie类将HttpContextBase作为构造函数参数(见下文),现在当我运行我的应用程序时,我收到此错误:没有为PluginFamily System.Web.HttpContextBase定义默认实例.
我之前在另一个具有相同堆栈的MVC应用程序中使用过此方法,但没有收到此错误.我错过了什么吗?如果我确实需要在我的structuremap配置文件中为HttoContextBase添加一些映射代码,我会使用什么?
帮助会很棒!!!
Cookie.cs
public class Cookie : ICookie
{
private readonly HttpContextBase _httpContext;
private static bool defaultHttpOnly = true;
private static float defaultExpireDurationInDays = 1;
private readonly ICryptographer _cryptographer;
public Cookie(HttpContextBase httpContext, ICryptographer cryptographer)
{
Check.Argument.IsNotNull(httpContext, "httpContext");
Check.Argument.IsNotNull(cryptographer, "cryptographer");
_cryptographer = cryptographer;
_httpContext = httpContext;
}
public static bool DefaultHttpOnly
{
[DebuggerStepThrough]
get { return defaultHttpOnly; }
[DebuggerStepThrough]
set { defaultHttpOnly = value; }
}
public static float DefaultExpireDurationInDays
{
[DebuggerStepThrough]
get …Run Code Online (Sandbox Code Playgroud) 我的控制器上有标准的Create()Edit()和Delete()方法,我正在使用EF4自跟踪实体.
当回发编辑时,model.ChangeTracker.ChangeTracking = false,以及model.ChangeTracker.State = ObjectState.Added,即使我确保在最初检索记录时设置了这些.
提交表单时,自我跟踪实体是否未持久保存ChangeTracker类?如果是这样,我该如何解决?
public virtual ActionResult Edit(int personId)
{
IContext context = ContextFactory.GetContext();
EntityRepo Repo = new EntityRepo(context);
Person d = Repo.Person.GetById(PersonId);
d.ChangeTracker.ChangeTrackingEnabled = true;
return View(d);
}
[HttpPost]
public virtual ActionResult Edit(int personId, Person item)
{
try
{
if (ModelState.IsValid)
{
IContext context = ContextFactory.GetContext();
EntityRepo Repo = new EntityRepo(context);
// the item is returning these properties that are wrong
//item.ChangeTracker.ChangeTrackingEnabled = false;
//item.ChangeTracker.State = ObjectState.Added;
Repo.Person.Update(item);
Repo.Person.SaveChanges();
return RedirectToAction("Index");
}
}
catch
{
} …Run Code Online (Sandbox Code Playgroud) 我正在使用我在隐藏字段中传递的id值.当用户提交表单时,我需要隐藏字段进行更新.更新后,新值将放置在模型的隐藏字段中并发送回视图.看起来很奇怪的是助手总是使用第一个值,永远不会更新.例如,从View中查看以下内容:
<%: Html.Hidden("MyId",Model.MyId) %>
<%: Model.MyId %>
Run Code Online (Sandbox Code Playgroud)
第一次看一下浏览器中的源代码产生:
<input type="hidden" id="MyId" name="MyId" value="1" />
1
Run Code Online (Sandbox Code Playgroud)
**提交回控制器并将模型更新MyId属性更新为2.
回到浏览器,我现在发现:
<input type="hidden" id="MyId" name="MyId" value="1" />
2
Run Code Online (Sandbox Code Playgroud)
同一个型号属性有不同的值!帮助器方法以某种方式从先前的模型实例中获取它或什么?
任何帮助都非常感谢我不理解.顺便说一句,Html.TextBox和Html.TextBoxFor.相同的行为.
谢谢.
嘿所有,再次抱歉.这次我有一个我认为相当普遍的问题.我在控制器中一遍又一遍地使用几乎完全相同的代码来设置viewModel.我的问题是,有没有办法在MVC项目中的某处存储此代码,可能让它返回一个viewModel,并在同一个项目中从控制器调用它.
我想跟随干,但似乎无法找到任何资源.提前致谢!
我有一个关于我的观点的下拉菜单.此下拉列表仅适用于条目.基本上我需要知道在下拉值改变时如何调用动作?
我的情况是:我正在制作一个简单的收件箱页面.下拉列表包含筛选选项:查看全部,查看邀请,查看回复等.
当用户从下拉列表中选择过滤器选项时,我想调用一个操作来返回带有过滤数据的新视图.
有任何想法吗?我猜它是某种方式将附加到下拉列表的OnChange的脚本,但我不知道语法是什么或如何从脚本调用MVC操作.
提前致谢
我已经开发了asp.net mvc 2 + C#应用程序。它具有创建功能,其中有日期时间字段。如果我在本地运行该应用程序,则运行正常。但是,如果我将其部署在IIS服务器(v 5.1)上,接受的日期不超过12(如果给出14/10/2010),则无法使用),这意味着它将在iis上以MM的形式在运行时更改日期格式/ dd / yyyy。但是在插入代码中,我通过此行将“ dd / MM / yyyy”格式转换为:
objRecord.NextElectionDate = DateTime.ParseExact(collection [“ NextElectionDate1”],“ dd / mm / yyyy”,null);
我检查了区域设置,这与我在本地运行应用程序(美国文化)的位置相同。没有任何异常退出。我也尝试在iis 6.0上部署应用程序,该应用程序运行良好。但是在客户端有可用的IIS 5.1版本,因此必须以某种方式在IIS 5.1上运行该应用程序。这是IIS版本的问题吗?如何解决这个问题?
编辑1:

我有这样的代码:

编辑2:您好!当我调试应用程序时,我正在获取ModelState.IsValid为“ false”,同时尝试在“ Create” Action上插入人员信息。如何知道ModelState.IsValid中出了什么问题?为什么它会变得“假”?请指导
asp.net-mvc-2 ×10
asp.net-mvc ×3
c# ×2
.net-4.0 ×1
architecture ×1
asp.net ×1
client-side ×1
datetime ×1
dry ×1
linq ×1
structuremap ×1