2016-06-10 60 views
0

我的问题是,我只是想重装(按钮点击)这部分视图,其中按钮在按钮刷新自己的局部视图的ASP.NET MVC

它看起来像:

查看:

@for (int x = 0; x < Model.Height; x++) 
{ 
<tr> 
    @for (int y = 0; y < Model.Witdh; y++) 
    { 
     <td> 
      @Html.Partial("MyPartialView", new Test() { X = x, Y = y, Type = Models.OwnType.Unknown) 
     </td> 
    } 
</tr> 
} 

PartialView(MyPartialView)

@model Client.Models.Test 

@if (Model.Type == Models.OwnType.Unknow) 
{ 
    <div id="Unknow"> 
      <input id="fire" type=submit value="fire" /> 
    </div> 
} 
else if (Model.Type == Models.OwnType.Type.A) 
{ 
    <div id="TypeA">A</div> 
} 
else if (Model.Type == Models.OwnType.Type.B) 
{ 
    <div id="TypeB">B</div> 
} 

控制器

public ActionResult ChangeAt(int x,int y) 
{ 
    var model = // change type 

    return PartialView("MyPartialView", model); 
} 

型号

public class Test 
{ 
    public int X { get; set; } 
    public int Y { get; set; } 
    public OwnType Type { get; set; } 
} 

回答

0

剃刀不会是能够帮助你在这里。在完整页面剃须刀视图被发送到浏览器之前,它将被创建。您可以使用iframe来获得所需的行为,而不是使其成为局部视图,而只是将其视为iframe中的完整视图。否则,它可能是javascript/jquery类型的解决方案,这是大多数人所做的。

+0

谢谢。我也这么想。但大部分jQuery解决方案都会在局部视图外部使用按钮重新加载局部视图。当按钮处于内部时,是否也可以使用脚本,因为我认为我需要动态选择器? – gexen

+0

我遇到了麻烦,我的头围绕这个,但它听起来像你正在生成一个巨大的html输出。你可以在部分视图中使用JavaScript来保存正确的值。我的直觉告诉我这是一个Angularjs问题。对不起,没有帮助更多。 –