小编Rob*_*oll的帖子

动态或条款Linq

今天我们现在有一个这样的声明:

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)

c# linq dynamic-linq where-clause conditional-statements

7
推荐指数
2
解决办法
2048
查看次数

C#将文件保存到服务器而不是本地文件夹

该项目是基于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服务器.这甚至可能吗?

现在文件被保存到我的本地路径,路径存储在数据库中,然后我们必须手动将文件上传到网络服务器.

c# file-upload asp.net-mvc-4

6
推荐指数
1
解决办法
4万
查看次数

在排序或分页ASP.net MVC Webgrid时显示Ajax加载指示器

我可以轻松地连接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)

asp.net ajax asp.net-mvc jquery webgrid

5
推荐指数
1
解决办法
4302
查看次数