【问题标题】:return RedirectToAction to a Index but with a href sections? (Ajax optional)将 RedirectToAction 返回到索引但带有 href 部分? (阿贾克斯可选)
【发布时间】:2019-01-18 13:36:56
【问题描述】:

我在一个视图文件中有多个部分,例如,href="#timeline" 对应于 <div class="tab-pane" id="timeline">href="#settings"<div class="tab-pane" id="settings">

单击选项卡时间线将带您进入显示时间线的选项卡。 单击“设置”选项卡会将您带到允许您更改设置的选项卡。

如何将控制器中的视图返回到同一视图文件中的 href="#settings" 部分?

谢谢。

型号:

 public class UserViewModel
    {
        public List<Timeline> TheTimeline { get; set; }
        public List<Posts> ThePosts{ get; set; }
        public string SettingsVM{ get; set; }
    }

控制器:

 [HttpPost]
        public ActionResult SettingsUpdateProfile(User variable, IFormFile TheEmployeePicture)
        {
          blablabla
                    if (UploadFile(TheEmployeePicture, fname))
                    {
                        return RedirectToAction(String.Format("Index/{0}", User.Identity.Name);
                    }
                    else
                    {
                        return BadRequest();
                    }

                }
                else
                {
                    return BadRequest();
                }
            }
            else
            {
                return BadRequest();
            }
        }

观看次数:

@model UserProfile.Models.UserViewModel

@{
    ViewData["Title"] = "UUUSSSEEERRR";
}

<div class="col-md-9">
                <div class="nav-tabs-custom">
                    <ul class="nav nav-tabs">
                                              <li class="active"><a href="#activity" data-toggle="tab">Posts</a></li>

                        <li><a href="#timeline" data-toggle="tab">Timeline</a></li>


<div class="tab-pane" id="timeline">
                          ...
                        </div>

【问题讨论】:

  • 局部视图怎么样?并使用 ajax 助手来绑定它?
  • 为什么不使用 ajax?
  • 你能分享一下你的ajax解决方案吗?
  • 请分享您的模型和当前的html
  • 你去就是代码

标签: c# html ajax asp.net-mvc controller


【解决方案1】:

如果您对两个选项卡使用相同的 ViewModel,我建议不要使用 ajax,因为您不需要更多请求,如果您有足够的数据进行显示。

       <ul class="nav nav-tabs in" id="your_id">
        <li><a data-toggle="tab" href="#timeline">Time Line</a></li>
        <li><a data-toggle="tab" href="#settings">Time Line</a></li>
       </ul>
     <div id="tab-content" class="tab-content">
      <div class="tab-pane" id="timeline">@{ Html.RenderPartial("ViewName", Model)}</div>
      <div class="tab-pane" id="timeline">@{ Html.RenderAction("ActionName", "ControllerName", new { routeParams})}</div>
    </div>

所以你可以选择,使用渲染部分和传递模型作为参数和视图名称,或者你可以渲染动作,它会请求和返回视图。

【讨论】:

  • 不幸的是,我有相同的 ViewModel。无论如何,感谢您的帮助!
  • 那么有什么问题吗?使用 Html.RenderPartial("VIEWNAME",Model.SettingsVM)。它会根据您的观点简单地返回格式化的 html?
猜你喜欢
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 2018-05-15
  • 2018-07-04
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
相关资源
最近更新 更多