小编Lan*_*usT的帖子

找出两个相同类型的实体之间的差异

我正在开发一个mvc3网络应用程序.当用户更新某些内容时,我想将旧数据与用户输入的新数据进行比较,并且对于每个不同的字段,将这些数据添加到日志中以创建活动日志.

现在这是我的保存动作:

[HttpPost]
public RedirectToRouteResult SaveSingleEdit(CompLang newcomplang)
{
    var oldCompLang = _db.CompLangs.First(x => x.Id == newcomplang.Id);

    _db.CompLangs.Attach(oldCompLang);
    newcomplang.LastUpdate = DateTime.Today;
    _db.CompLangs.ApplyCurrentValues(newcomplang);
    _db.SaveChanges();

    var comp = _db.CompLangs.First(x => x.Id == newcomplang.Id);

    return RedirectToAction("ViewSingleEdit", comp);
}
Run Code Online (Sandbox Code Playgroud)

我发现我可以用它来遍历我的oldCompLang属性:

var oldpropertyInfos = oldCompLang.GetType().GetProperties();
Run Code Online (Sandbox Code Playgroud)

但这并没有真正帮助,因为它只显示属性(Id,Name,Status ...)而不是这些属性的值(1,Hello,Ready ...).

我可以走得那么艰难:

if (oldCompLang.Status != newcomplang.Status)
{
    // Add to my activity log table something for this scenario
}
Run Code Online (Sandbox Code Playgroud)

但我真的不想为对象的所有属性做这件事.

我不确定迭代两个对象以查找不匹配的最佳方法是什么(例如,用户更改了名称或状态......)并根据我可以存储在另一个表中的差异构建列表.

asp.net-mvc entity-framework linq-to-sql

15
推荐指数
2
解决办法
1万
查看次数

textboxfor mvc3日期格式和日期验证

我决定开始使用MVC 3,并且在尝试将我的一个Web应用程序重做为MVC3时遇到了这个问题.

我有这样设置的项目:

public class Project
{
    public int      ProjectID       { get; set; }

    [Required(ErrorMessage="A name is required")]
    public string   Name            { get; set; }

    [DisplayName("Team")]
    [Required(ErrorMessage="A team is required")]
    public int      TeamId          { get; set; }

    [DisplayName("Start Date")]
    [Required(ErrorMessage="A Start Date is required")]
    [DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="{0:d}")]
    public DateTime StartDate       { get; set; }

    [DisplayName("End Date")]
    [Required(ErrorMessage="An End Date is required")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    public DateTime EndDate         { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的报名表是这样编写的日期:

<table>
    <tr>
        <td>
            <div class="editor-label"> …
Run Code Online (Sandbox Code Playgroud)

.net asp.net-mvc asp.net-mvc-3

13
推荐指数
2
解决办法
3万
查看次数

使用jquery post for mvc 3在部署时无法正常工作

所以我有这个MVC 3应用程序有一个下拉列表,我用来通过jquery填充div.它在本地工作正常,但当我将其部署到服务器时,它的重定向不正确.这是我的jquery:

$("#ddlCategoryMain").change(function () {
    $.post("/Home/Category/", { mileID: $(this).val() }, function (data) {
        refreshDiv($("div#main"), data);
    });
});

function refreshDiv(select, data) {
    select.html("");
    select.append(data);
}
Run Code Online (Sandbox Code Playgroud)

本地这个工作正常.但是当部署到我的服务器时,它似乎正在寻找http:// myserver/Home/Category而不是http:// myserver/mywebsite/Home/Category

我可以通过简单地在jquery函数中的/ Home/Category之前添加我的应用程序的名称来修复它,但这感觉不对...

我也尝试在/ Home之前添加../,〜/,../.. /但这没有任何区别.

解决这个小问题的任何方法?谢谢!

asp.net-mvc jquery

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

MVC Ajax.BeginForm未定义OnSuccess函数

我试图让我的Ajax.BeginForm运行一个函数OnSuccess但我不断收到firebug错误信息:

UpdateProjectDiv is not defined
 return Function.constructor.apply(null, argNames); 
Run Code Online (Sandbox Code Playgroud)

这是表单的样子:

<script type="text/javascript">
    $(document).ready(function () {

        function UpdateProjectDiv() {
            var projid = $("#ddlProjectsManage").val();

            $.post("/Manage/ProjectEmployeeList/", { projectid: projid }, function (data) {
                populateDiv($("#divProjectsToFill"), data);
            });
        }

        function populateDiv(div, data) {
            div.html('');
            div.append(data);
        }

    });
</script>

@using (Ajax.BeginForm("MoveToProject", new AjaxOptions { UpdateTargetId = "divAllEmployeesToFill", OnSuccess = "UpdateProjectDiv" }))
{
    [insert non-relevant code here] 

    <input id="btnMoveEmpsToProject" type="submit" value=">>"  />
    @Html.Hidden("SelectedProjectID","9999999999999")
}
Run Code Online (Sandbox Code Playgroud)

我的控制器动作:

[HttpPost]
public ActionResult MoveToProject(UnassignedEmployeeBindingModel model, int selectedprojectId)
{
    var tempteam = _db.SpecTeams.SingleOrDefault(s => …
Run Code Online (Sandbox Code Playgroud)

javascript jquery razor asp.net-mvc-3

10
推荐指数
1
解决办法
7619
查看次数

位置:粘性滚动仍然移动元素

我需要显示类似于表格的东西,其中第一列可以水平滚动.

该列有一段时间处于粘性状态,但是当您滚动太多时,它会开始与其余部分一起移动:

.wrapper {
  width: 250px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  position: relative;
}

.header-container, .row-data {
  display: flex;
  position: relative;
}

.header, .data {
  flex: 0 0 80px;
  padding: 1rem;
  background-color: lightblue;
}

.fullname {
  position: sticky;
  left: 0;
  background-color: orange;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="wrapper">

    <div class="header-container">
      <div class="header fullname">Full Name</div>
      <div class="header">Test 1</div>
      <div class="header">Test 2</div>
      <div class="header">Test 3</div>
      <div class="header">Test 4</div>
    </div>
    
    <div class="data-container">
      <div class="row-data">
        <div class="data fullname">Full Name</div>
        <div class="data">Test 1</div>
        <div class="data">Test …
Run Code Online (Sandbox Code Playgroud)

html css

8
推荐指数
1
解决办法
2794
查看次数

嵌套的RenderAction渲染速度非常慢

我有一个PartialViewResult操作,它呈现我从页面上的$ .ajax调用调用的PartialView.

PartialView还有一个用于VM中项目的foreach循环,在该PartialView中我有两个渲染另外两个Partial的RenderAction.

一切正常,除了它渲染的速度.当我注释掉两个嵌套的RenderAction时,主要的局部视图渲染速度非常快.当我取消注释它们时,主要局部视图呈现3到5秒.即使我从部分视图中删除所有数据并且从操作中删除所有数据只返回空视图,它仍然需要3-5秒.

不知何故,我的应用程序在呈现这两个部分时遇到问题,即使它们是空的.

我的代码:主要行动:

public PartialViewResult MyTasks(int milestoneId, int currentPage = 1)
{
    var mergedTasks = new List<MergedTask>();   
    var TrackingTeams = _TrackingTeams.GetAll().ToList();
    var pagingInfo = new PagingInfo() {CurrentPage = currentPage, ItemsPerPage = 10, TotalItems = _TrackingTeams.GetAll().Count() };                                                                     
    mergedTasks.AddRange(from TrackingTeam in TrackingTeams
                       let task = allTasks.Single(x=>x.TestId == (int)TrackingTeam.TrackingTask.TestId)
                       select new MergedTask()
                       {                           
                           Summary = TrackingTeam.TrackingTask.Description,
                           InternalId = task.Id,
                           DevTrackingTask = TrackingTeam.TrackingTask,
                           LastUpdate = task.DateModified
                       });

    return PartialView(new DevTrackingTaskViewModel
    {
        MergedTasks = mergedTasks,
        Category = _categories.GetById(categoryId),
        PagingInfo = pagingInfo
    }); …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc performance partial-views

7
推荐指数
1
解决办法
1861
查看次数

RabbitMQ只侦听队列中的第一条消息

我的Rabbit队列问题当前只对队列中的第一条消息做出反应,之后被忽略的任何其他消息都被忽略了.

我首先实例化连接并在IQueueConnectionProvider中声明队列:

var connectionFactory = new ConnectionFactory() { HostName = hostName };
var connection = _connectionFactory.CreateConnection();
var channel = connection.CreateModel();
Run Code Online (Sandbox Code Playgroud)

然后IQueueConnectionProvider在我的IQueueListener中用作只有一个方法的依赖项:

public void ListenToQueue(string queue)
{
    var channel = _queueConnectionProvider.GetQueue();

    var consumer = new EventingBasicConsumer(channel);
    consumer.Received += (model, ea) =>
    {
        string path = @"d:\debug.log.txt";
        File.AppendAllLines(path, new List<string>() {"MESSAGE RECEIVED", Environment.NewLine });

        var body = ea.Body;
        var message = Encoding.UTF8.GetString(body);

        channel.BasicAck(ea.DeliveryTag, false);
    };

    channel.BasicConsume(queue, true, consumer);

}
Run Code Online (Sandbox Code Playgroud)

我的日志文件最终只是一行"MESSAGE RECEIVED",但我可以在Rabbit ui界面看到我的其他服务正在将消息推送到该队列就好了.

这里有什么我想念的吗?

c# rabbitmq

7
推荐指数
1
解决办法
781
查看次数

jquery .html刷新无法在Chrome上运行

我有一个页面,其中包含一个任务列表,每个任务都有一个下拉列表,其中包含可分配任务的团队列表,但由于任务量不足,我无法在Action中预先填充它,因为它会降低分页速度/显示任务非常显着.所以相反,在点击下拉列表时,我有一个jquery函数,它调用一个返回Json字符串的动作.

所有这些在Firefox中都可以正常工作,但在Chrome中,当用户点击下拉列表时,会进行调用,但下拉列表不会填充.用户必须单击并重新打开下拉列表,然后从初始调用中获取数据(没有第二次调用).数据可以很好地添加到HTML中,但下拉列表不会刷新.

$("#teamsSpanFor1354405").click(function () {
    var issueId = 1354405;
    var ddl = $("#teamsSpanFor1354405").find("select.ddlTeamsAssignTask");

    if (ddl.find("option").length == 1) {
        $.ajax({
            url: '/Tracker/Task/DisplayAssignTaskToTeam',
            data: { milestoneId: 1, issueId: issueId, jsonRequest: "true" },
            type: 'POST',
            async: true,
            success: function (data) {
                console.log(data);
                var html = "<option value=''>Assign to Team</option>";
                $.each(data, function () {
                    html += "<option value='" + this.Id + "'>" + this.Name + "</option>";
                });
                console.log(html);
                ddl.html(html);
            }
        });
    }
});

@using (Ajax.BeginForm("AssignTaskToTeam", new AjaxOptions { UpdateTargetId = "assignTaskForIssue" + Model.IssueId, OnSuccess …
Run Code Online (Sandbox Code Playgroud)

jquery asp.net-mvc-3

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

SQL查询将SUM结果乘以内部元素的数量

我有一个查询功能,根据组件状态和可用性列出功能

SELECT Brand.Id
  , Brand.Name
  , Brand.Impact
  , Brand.Visibility
  , Brand.Risk
  , SUM(Brand.Impact + Brand.Visibility + Brand.Risk) AS Priority

FROM Brand 
LEFT OUTER JOIN Type 
  ON Brand.Id = Type.FeatureId 
LEFT OUTER JOIN Model 
  ON Type.Id = Model.SubFeatureId 
LEFT OUTER JOIN TestingStatus 
  ON Model.StatusId = TestingStatus.Id

WHERE (Model.IsDeleted = 'False') 
  AND (Brand.IsDeleted = 'False') 
  AND (Type.IsDeleted = 'False')
  AND (@TeamId = 0 OR Model.TeamId = @TeamId)
GROUP BY Brand.YearId, Brand.Id, Brand.Name, Brand.Impact, Brand.Visibility, Brand.Risk
HAVING (Brand.YearId = @YearId)
Run Code Online (Sandbox Code Playgroud)

我的结果如下:

ID  Name …
Run Code Online (Sandbox Code Playgroud)

sql stored-procedures

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

所有页面上的 CSS @page 背景图像?

我希望每个打印页面上都有相同的背景图像。每当由于溢出而需要某个页面时,它应该具有与前一个页面相同的背景图像。

我一直在尝试这样做

@page {
    size: US-Letter portrait;
    background-image: url("something.jpg");
    padding: 3in .5in .75in .5in;
}
Run Code Online (Sandbox Code Playgroud)

但这不适用于任何浏览器。这是根本不可能的事情吗?还是还有更多我还没有发现的技巧?

html css printing

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