小编Dev*_*Dev的帖子

使用AJAX时,ASP.NET MVC页面未更新

我有一个ASP.NET MVC项目,我想在文章中发布一篇文章然后在页面上显示该文章的片段.当用户注释时,我还想在保存到数据库后显示注释.我在这两种情况下使用AJAX和调用OnFailureOnSuccess方法.

OnFailure保存帖子而不是注释时,该方法仅会启动(这是因为即使成功保存,页面也不会更新).OnSuccess根本没有调用该方法,因为我的页面没有更新.

我正在使用jquery 2.1.4并在我的项目中加载了jquery.unobtrusive-ajax脚本

这是我的代码.

//查看用于创建帖子

 @using (Ajax.BeginForm("Create", "Post",
new AjaxOptions
{
    HttpMethod = "POST",
    UpdateTargetId = "insertnewpostbelow",
    InsertionMode = InsertionMode.InsertAfter,
    OnSuccess = "postingSucceeded()",
    OnFailure = "postingFailed()"
}))
 {
  //View code left out 
 }
Run Code Online (Sandbox Code Playgroud)

//服务器端用于保存帖子和更新 PartialView

 [HttpPost, ValidateAntiForgeryToken, ValidateInput(false)]
    public async Task<PartialViewResult> Create
        ([Bind(Include = "ID,Title,Message,PostedOn,isAbuse,By")] Post post)
    {
        if (ModelState.IsValid)
        {
            var list = new List<Post>();
            list.Add(post);

            try
            {
                db.Posts.Add(post);
                await db.SaveChangesAsync();

                return PartialView("_Posts", list);
            }
            catch …
Run Code Online (Sandbox Code Playgroud)

javascript ajax asp.net-mvc unobtrusive-javascript

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

MVC3 - 为什么回发时导航属性为null

我发布后,我无法弄清楚如何让我的模型(EF4)的导航属性不为空.我在几个基本页面上遇到同样的问题.

即我有一个表使用LoginID的外键估计(来自Login表).

在我的HTTPGet Edit方法中,我找到了我想要的具体估计值:

Estimate estimate = db.Estimates.Find(id)
Run Code Online (Sandbox Code Playgroud)

从这里我可以从Login表访问Login导航属性和该记录的任何属性.

我将此估计值作为我的强类型视图的模型.当我调用HTTPPost Edit方法(并将模型作为参数传递给它)时,我的Login导航属性为null,我无法访问其中的任何内容.我当然可以解决这个问题,因为我的估计课程中确实有LoginID字段,但感觉非常笨重,而且我错过了实体框架的一个关键优势.

我在多个页面上遇到同样的问题,我将带有导航属性的模型传递给我的视图,视图返回带有null导航属性的模型.

下面是我遇到问题的代码示例:

    [HttpPost]
    public ActionResult Edit(Estimate estimate)
    {

        var test = estimate.Login.CompanyProfileID;
        ...
Run Code Online (Sandbox Code Playgroud)

我可以在视图中访问Model.Login及其所有属性,所以我知道它正确地传递给了视图.当我的表单提交时,它只是没有将导航属性传递回控制器.

entity-framework asp.net-mvc-3

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

用于在DataTable的DataColumn中保存图像的DataType

我有一个看似简单的问题,我已经动态创建了一个DataTable,并且我很好地添加了行.但是我有一个列,它将有一个标志,这是一个图像.我已经将两个标志(.png图像)导入到项目资源中.但是我无法将列的DataType设置为System.Type.Bitmap,因为DataColumn不支持,因为这里可以看到.我见过一个解决方案,说我将DataType设置如下

dataColumn = new DataColumn("Flag");
dataColumn.DataType = System.Type.GetType("System.Byte[]"); //Replacing System.Byte[] with System.Type.Bitmap throws Type Exception
dataTable.Columns.Add(dataColumn);
Run Code Online (Sandbox Code Playgroud)

然而,抛出一个Exception声明编译器期望Byte []但得到了Bitmap.

以下是我向DataTable添加行的方法

row["Part Number"] = part;
row["Module Name"] = populator.LookUpAValue(moduleSql);
row["Flag"] = Properties.Resources.Yellow_Flag;
row["Location"] = populator.LookUpAValue(nameSql);
dataTable.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)

这是我的问题,我将DataType保存为图像列,因此当我显示到DataGridView时,我看到显示的图像.如果不在DataGridView上设置DataType而不是显示图像,我会得到文本 System.Drawing.Bitmap

c# datatable datagridview datagridviewcolumn datacolumn

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