我有以下场景:有一个数据库每年生成一个新的logTable.它始于2001年,现在有11张桌子.它们都具有相同的结构,因此具有相同的字段,索引,pk等.
我有一些叫做管理器的类 - 顾名思义 - 管理这个DB上的每个操作.对于每个不同的表我有一个经理,除了这个logTable,我只有一个经理.
我已经阅读了很多内容并尝试了不同的东西,例如使用ITable动态获取表或者我的所有表都实现的接口.不幸的是,我失去了强类型的属性,因此我无法进行任何搜索或更新或任何事情,因为我无法使用logTable.Where(q=> q.ID == paramId).
考虑到这些表具有相同的结构,从2010开始搜索日志的查询可以是从2011年开始搜索日志的查询.
我只是问这个,因为我不想为每个表重写相同的代码,因为它们在结构上是相同的.
编辑
我正在使用Linq to SQL作为我的ORM.这些表使用所有数据库操作,而不仅仅是选择.
是否可以将模型验证添加到编辑或添加jqgrid表单?如果是这样,它会怎么做?我知道我可以为jqGrid表单上的每个字段创建自定义验证,但是如何将默认的MVC3验证集成到jqGrid?
我一直在创建一个自定义按钮,在jQuery对话框上加载局部视图.但是,我不想再次调用控制器,因为我可以通过jqGrid get方法直接获取所有行值(即使我丢失了部分视图模型验证).
任何提示?
关于来自MVC3的editorFor helper我有一个奇怪的问题.事情是这样的:我正在尝试显示一个checkboxList,如果我不调用明确的模板名称,它就可以工作.但是,如果我尝试使用模板名称,它会抛出一个异常,说我正在尝试传递一个通用列表,当我应该简单地传递我的viewModel.我将展示一些代码以使其更易理解:
视图模型
public class ChkViewModel
{
public string ContractName {get;set;}
public string Contract {get;set;}
public bool Checked {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
EditorFor Template(称为ContractTemplate)
@model Models.ChkViewModel
<p>
@Html.HiddenFor(x => x.Contract )
@Html.LabelFor(x => x.ContractName , Model.ContractName )
@Html.CheckBoxFor(x => x.Checked, new { @class = "chkContract" })
</p>
Run Code Online (Sandbox Code Playgroud)
摘自我的观点
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList)
</div>
Run Code Online (Sandbox Code Playgroud)
这很好用.但它试图这样做:
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList, "ContractTemplate")
</div>
Run Code Online (Sandbox Code Playgroud)
它抛出了InvalidOperationException我必须传递一个简单的ChkViewModel而不是GenericList ChkViewModel的说法.
我只是问这个,因为我试图创建另一个复选框列表,我无法使它工作(甚至不显示复选框),当我试图设置模板名称,这样我至少可以看到复选框,它抛出了那个错误.
我最近开始使用marteenba的站点地图提供程序,因为我无法解决其他站点地图的路由问题.它比我以前的方式更好.我的问题是:如何从进入单个主页的页面创建不同的痕迹痕迹?考虑以下想法:
站点地图结构
<mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">
<mvcSiteMapNode title="Clients Search" controller="ClientBussiness" action="ClientSearch" description="Clients Search">
<mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
</mvcSiteMapNode>
<mvcSiteMapNode title="Advanced Search" controller="ClientBussiness" action="AdvancedSearch" description="Clients Advanced Search">
<mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
</mvcSiteMapNode>
<mvcSiteMapNode title="Another Search" controller="ClientBussiness" action="AnotherSearch" description="Clients Another Search">
<mvcSiteMapNode title="Contract Analysis" controller="Contract" action="Index"/>
</mvcSiteMapNode>
</mvcSiteMapNode>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我的痕迹痕迹始终显示节点"客户端搜索"而不是任何其他节点.我不知道是否应该为每种搜索创建不同的路由(我在上一个站点地图上做了这个,但不幸的是iis6不喜欢它).
我感谢您的帮助.
编辑
在论坛上搜索我发现了类似的问题.因此,请考虑以下结构:
Home >> Search >> Contracts
Home >> Another Search >> Contracts
Home >> Advanced Search >> Contracts
Home >> Web Service Search >> Extra …Run Code Online (Sandbox Code Playgroud) 我理解StackOverflow上有关于这个问题的类似问题,但没有一个能解决我的问题,所以我正在创建一个新问题.
正如标题所说,我想检测用户何时刷新页面.我有一个页面,我保存一些用户在其上完成的日志信息(添加,删除或编辑项目).此日志只能在用户离开页面时保存,而不能通过刷新保存.
我尝试了下面的示例来检测它是刷新还是新请求:
public ActionResult Index()
{
var Model = new Database().GetLogInfo();
var state = TempData["refresh"];
if(state == null)
{
//This is a mock structure
Model.SaveLog(params);
}
TempData["refresh"] = true; //it can be anything here
return View();
}
Run Code Online (Sandbox Code Playgroud)
考虑到它是一个TempData它应该在我的下一个行动到期.但是,由于某种原因,它在整个应用程序中存活了下来.根据这个博客,它应该在我随后的请求到期(除非我不理解的东西).即使我从我的应用程序注销并再次登录,我的TempData仍然存在.
我一直在考虑使用javascript函数onbeforeunload对一些动作进行AJAX调用,但我再一次不得不依赖TempData或以某种方式持久保存这个刷新信息.有小费吗?
这似乎很简单,但我无法解决它,我真的需要这个.如何通过SelectedDate事件向选定日期添加日期?
我需要对2个日期选择器执行日期范围限制.一旦用户设置了一个日期选择器,另一个只需要允许日期等于第一个日期选择器的选定日期加上一个月.
示例:如果我在第一个日历上设置'3 of march',则第二个日历必须只允许大于'4月3日'的日期.
到目前为止,我只能得到相同的选定日期或我设定的日期$('#dtpicker').datepicker( "setDate" , '+1m');.我尝试了jquery-ui文档示例,但没有.
asp.net-mvc ×3
c# ×1
datepicker ×1
dynamic ×1
editorfor ×1
jqgrid ×1
jquery ×1
jquery-ui ×1
linq-to-sql ×1
tempdata ×1
validation ×1