MVC3:同一视图上的按钮操作

时间:2012-12-26 20:29:10

标签: asp.net-mvc-3 button view

我希望在按钮点击时更改视图的内部html,但保持视图。我知道如何在javascript中更改div的html内容,但是如何让按钮的操作不返回不同的视图?

我的按钮看起来像

<input type="submit" value="submit" onchange="myfunc()"/>

其中myfunc()是Javascript更改div内容的函数。

1 个答案:

答案 0 :(得分:1)

假设您想要一个使用ajax呈现内容的链接(并希望使用razor),您可以执行以下操作:

首先,设置动作以部分呈现内容。这可以通过几种方式完成,但我会在动作中保持逻辑(并使其可以直接调用或通过ajax调用):

[HttpPost]
public ActionResult Save(SomeModel model)
{
  /* build view */
  return Request.IsAjaxRequest() ? PartialView(model) : Wiew(model);
}

接下来,在您的页面中设置一个容器,其中将填充内容以及您要提交的表单。如果希望表单在保存时消失,请将其包装在容器中。否则,保持容器分开。在下面的示例中,from将提交并在成功时返回,否则新内容将显示在其位置:

<div id="ajaxContentPlaceholder">
  @using (Ajax.BeginForm("Save", new AjaxOptions { UpdateTargetId = "ajaxContentPlaceholder" })) {
      <!-- form elements -->
      <input type="submit" value="save" />
  }
</div>