今天我们现在有一个这样的声明:
var Query = (from dp in db.Patients
select dp);
var UserID = User.Identity.GetUserId();
if (User.IsInRole("Administrator"))
{
Query = Query.Where(x => x.AdministratorID == UserID);
}
if (User.IsInRole("Counselor"))
{
Query = Query.Where(x => x.CounselorID == UserID);
}
if (User.IsInRole("Physician"))
{
Query = Query.Where(x => x.PhysicianID == UserID);
}
Run Code Online (Sandbox Code Playgroud)
问题是我们有可以拥有多个角色的用户.如果用户同时是辅导员和医师,我们希望系统撤回所有患者,其中CounselorID == UserID或PhysicianID == UserID.
如果我们不知道用户在加载页面时将扮演什么角色,如何动态完成?
当前.Where子句只使用AND语句,我们需要一个OR语句.
理想情况下会有这样的解决方案:
if (User.IsInRole("Administrator"))
{
Query = Query.Where(x => x.AdministratorID == UserID);
}
if (User.IsInRole("Counselor"))
{
Query = Query.WhereOr(x => x.CounselorID == UserID); …Run Code Online (Sandbox Code Playgroud) 该项目是基于MVC 4 C#的Web应用程序.
我目前正在本地工作,并希望能够在调试模式下将文件上传到我本地运行的应用程序,并将文件保存到Web服务器而不是我的本地文件夹.
目前我们正在使用:
if (!System.IO.File.Exists(Server.MapPath(PicturePath)))
{
file.SaveAs(Server.MapPath(PicturePath));
}
Run Code Online (Sandbox Code Playgroud)
我们如何利用此代码直接保存到Web服务器.这甚至可能吗?
现在文件被保存到我的本地路径,路径存储在数据库中,然后我们必须手动将文件上传到网络服务器.
我可以轻松地连接webgrid并使用默认设置向其添加ajax.但是我一直在努力弄清楚的一件事是当网格排序或通过ajax分页时如何添加加载指示器.
有一个内置的回调函数,可以很好地关闭ajax加载指示器,但我怎么能轻松打开一个?
下面是我目前为我的webgrid编写的代码.
@{
var grid = new WebGrid(rowsPerPage: Model.CountPerPage, ajaxUpdateContainerId: "GridArea");
grid.Bind(Model.Users,
autoSortAndPage: false,
rowCount: Model.TotalCount
);
grid.Pager(WebGridPagerModes.All);
}
<div id="GridArea">
@grid.GetHtml(htmlAttributes: new {id ="UserGrid"},
columns: new [] {
grid.Column("ID", canSort: false),
grid.Column("FirstName"),
grid.Column("LastName"),
grid.Column("Email"),
grid.Column("FullName", canSort: false)
}
)
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用以下内容,但这些都没有奏效.
<script>
$(function () {
$("#UserGrid").live("ajaxStart", function () {
alert("start");
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这个第一次工作但在网格完成第一次ajax刷新后无法工作.
<script>
$(function () {
$('#UserGrid').ajaxStart(function () {
alert("start");
});
});
</script>
Run Code Online (Sandbox Code Playgroud) c# ×2
ajax ×1
asp.net ×1
asp.net-mvc ×1
dynamic-linq ×1
file-upload ×1
jquery ×1
linq ×1
webgrid ×1
where-clause ×1