我有一个带Razor的MVC3应用程序,我在里面创建了一个View渲染部分视图.这是主视图的样子:
@{Html.RenderPartial("_SearchFilters", Model.SearchFilters);}
@* Other HTML elements *@
Run Code Online (Sandbox Code Playgroud)
在_SearchFilters部分视图中,我在Form元素中有以下DropDownLists:
Choose Year
@Html.DropDownListFor(m => m.Year, new SelectList(Model.YearsList, "Value", "Text"), DateTime.Now.Year)
Choose Month
@Html.DropDownListFor(m => m.Month, new SelectList(Model.MonthsList, "Value", "Text"), Model.Month.ToString(), new { @disabled = "disabled" })
<input type="submit" value="Display" />
Run Code Online (Sandbox Code Playgroud)
我希望在提交时,两个DropDownLists在使用过滤后的数据重新加载View时保持其状态,即用户选择的值.
有没有办法不使用AJAX?
UPDATE
ViewModel如下:
public class TableSearchFiltersViewModel
{
public bool YTM { get; set; }
public int? Month { get; set; }
public int? Year { get; set; }
public IEnumerable<SelectListItem> …Run Code Online (Sandbox Code Playgroud) 我想知道模型绑定在ASP.NET MVC3中是如何工作的.由于我还在等待我的专业ASP.NET MVC3书籍,我通过谷歌搜索找不到任何东西,你是我最后的希望.
我知道如何使用简单对象执行绑定,但是当涉及到ViewModels时,尤其是嵌套时List<T>,我无法执行绑定.
谢谢
弗朗切斯科
更新:
为了澄清,我的意思是从View到Action Methods的模型绑定,谢谢
我想知道是否存在一组模板(可能)用于任何MVC视图.我的意思是一组预定义的HTML标签(可能只是DIV,作为包装器),具有id和class属性,其中包括与CSS结合呈现完整的网页.例如,VS2010中的ASP.NET MVC3附带的模板.然后,您可以选择一个特定的模板(即在页面中央有一个表而不是图像的模板)并构建您的应用程序.
我需要这个,因为我绝对讨厌CSS(或者更好的HTML应用程序)因为我从来没有得到我想要的大小和位置!
提前致谢
弗朗切斯科
我想知道是否可以定期运行C#控制台或ASP.NET应用程序.
我的目的是每月自动执行以下步骤:
1)查询一个源数据库.
2)取在(1)的查询的结果和操作通过使用它们LINQ和C# ,例如通过检查一定的值已经存在于目标数据库.
3)存储在目标数据库中导出的数据.
应用程序必须在Windows Server 2008上运行,源数据库在SQL 2005 Server中,目标数据库在SQL 2008 Server中.
我试图创建一个例如SSIS包,但它不能完成这项工作,因为我无法添加任何逻辑.
有人有什么建议吗?
我有一个用 C# 开发的 ASP.NET Web 窗体应用程序。
我想通过将 DAL 任务与后面的代码分开来构建我的应用程序。
我在 App_Code DBUtilities中创建了一个类,负责与数据库的通信,以免整个应用程序中出现重复的代码。该类具有获取数据表、标量值等的方法......并且它们接受连接字符串名称和查询命令作为参数作为字符串。
问题是我的代码中仍然保留了所有查询命令。其中许多在页面上重复,这会导致维护问题。
我想知道创建一个包含许多字符串属性并将其与每个特定查询命令相关联的(静态)类QueryRepository是否是一个好习惯。每次我想执行查询命令MyCommand时,我都会将字符串的属性传递给DBUtilities类。更重要的是,如果我需要更改查询命令,我只需在 QueryRepository 类上执行即可。QueryRepository.MyCommand
这是组织我的 DAL 的好方法吗?
我在许多关于MVC,存储库模式,工作单元和EF的例子中看到,例如,接口和类都实现了IDisposable接口.我想这个接口只暴露Dispose()了2个重载的方法.
然而,在高级程序员的许多其他例子中,我没有看到这样的实现.实际上对我而言,每个Web请求都会消除一个组件,因为每个请求都会获得一个全新的控制器实例.
或者即使不是这种情况,我想通过使用依赖注入框架(如Ninject),我们将所有这些处理任务委托给框架.
也可能是旧版EF或MVC框架中需要实现IDisposable的情况.
有人可能会指出我正确的方向吗?
UPDATE
可以在具有Service and Repository层的分层应用程序中看到上下文的自动处理.假设我们从两个组件返回IQueryable<T>对象,如果我们尝试从控制器填充对象,通过迭代其项或调用ToList()方法,我们会得到一个运行时错误,说明上下文无法访问(关闭)
我有一个GridView:
<asp:GridView ID="gvDownloads">
<Columns>
<asp:TemplateField HeaderText="Status" >
<ItemTemplate>
<%# Eval("Enabled")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<asp:GridView/>
Run Code Online (Sandbox Code Playgroud)
该Enabled属性是一个布尔值.现在我想根据Enabled属性的True/False显示Enabled/Disabled .因此我使用:
Sub gvDownloads_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvDownloads.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.Cells(3).Text = "True" Then
e.Row.Cells(3).Text = "Enabled"
Else
e.Row.Cells(3).Text = "Disabled"
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为启动事件时 e.Row.Cells(3).Text是一个空字符串.我怎么解决这个问题?谢谢
我在SQL Server中有一个数据库.我没有权限更改任何表,但我可以创建视图.
我有三varchar列以格式存储日期YYYYMMDD.我想创造一个日期,从转换的视图varchar来datetime.
现在可能的情况是,我可以拥有空格NULL或字符,而不是此列中的日期-.
我们来看一下这个closedDate专栏.如果我使用CONVERT(datetime, closedDate, 112)
有效日期转换正确,
当空白空间将日期转换为时1900-01-01,
保留NULL,
将-导致一个转换错误:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值.
我如何告诉函数转换日期,只要它具有有效的日期格式,并在所有其他情况下保留NULL或更好的空日期(或空格)?
我有以下标签控件:
<asp:Label ForeColor="DarkGreen" runat="server" ID="lblStatus"></asp:Label>
Run Code Online (Sandbox Code Playgroud)
它的值填充在Page_Load事件中.
我附上了以下Javascript(放在页面的末尾,而不是母版页面):
function Validate() {
var lblObj = document.getElementById('<%=lblStatus.ClientID%>');
alert(lblObj.value);
if (lblObj.value == "Replaced" || lblObj.value == 'Trashed' || lblObj.value == "Internal Use") {
alert("Products with" + lblObj.value + "status cannot be reserved");
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
该警报(lblObj.value)显示文本"未定义"的弹出.我该如何解决这个问题?拜托,我尝试了许多组合来放置JavaScript,但没有运气!谢谢
UPDATE
浏览器感知代码:
<span id="ctl00__main_lblStatus" style="color:DarkGreen;">Available</span></td>
Run Code Online (Sandbox Code Playgroud)
Validate JS函数的第一行:
function Validate() {
var lblObj = document.getElementById('ctl00__main_lblStatus');
Run Code Online (Sandbox Code Playgroud) 我有两个MS SQL Server,我们称之为Source和Destination.我需要通过一个简单的查询(一个Select和一个Sum)从Source中的数据库表中提取一些数据,并将结果带到Destination中的数据库表.
我需要每月运行一次查询,以便将Destination中的数据用于应用程序.
我正在考虑通过创建一个工作流程(在这个简单的问题上很复杂而不值得)在应用层执行它,但我想知道使用SSIS或任何其他工具是否有更简单的选择.我特别不清楚如何设置触发器来运行查询以及放置查询代码的位置.
c# ×4
asp.net ×3
sql-server ×2
asp.net-mvc ×1
css ×1
database ×1
datetime ×1
gridview ×1
html ×1
idisposable ×1
javascript ×1
label ×1
razor ×1
rowdatabound ×1
sql ×1
templates ×1
triggers ×1