【问题标题】:Textbox value is not getting updated in ASP.NET MVC文本框值未在 ASP.NET MVC 中更新
【发布时间】:2021-02-13 03:09:38
【问题描述】:

我正在尝试在 ajax 调用完成后更新文本框的值。

这里是由于我的 ajax 调用而被调用的动作控制器方法:

[HttpPost]
public ActionResult Search(string productId)
{
    ReferencePeriodsModel model = new ReferencePeriodsModel()
    {
          From = "22222"
    };
    return View("Index", model);
}

@model ReferencePeriodsModel
@using (Html.BeginForm())
{
   @Html.TextBoxFor(model=>model.From, new { id ="fromValue", Value = Model.From})
}

这里是ajax调用:

$.ajax({
        type: "POST",
        url: "@Url.Action("method", "cont")",
        //dataType: "json",
        contentType: "application/json; charset=utf-8",
        
        //cache: false,
        async: true,
        success: function (data) {
           
        },
    });

我的问题是文本框的值没有更新为 22222。 我尝试删除 Value 字段,但没有成功。

我检查了 model.From 的值,它设置为 22222

我做错了什么?

【问题讨论】:

  • 因为 ajax 不会自动重新加载你的页面。你的 ajax 请求是什么样的?
  • @Jasen 更新了描述,也包含了 ajax 调用。无论如何我可以强制 ajax 使用部分视图刷新页面吗?

标签: asp.net asp.net-mvc


【解决方案1】:

似乎您想使用@Html.BeginForm(),在这种情况下不需要使用ajax 调用。实际上这是主要问题,您不能使用 ajax 调用返回视图。 您可以在此处找到与您类似的示例:How does @Html.BeginForm() work? and search result in Microsoft ASP.Net MVC 5 tutorial?

【讨论】:

  • 我的表单有多个按钮,它怎么知道要调用哪个操作,而且我想在调用控制器操作之前和之后执行不同的操作。即阻止和取消阻止UI
  • 好吧,如果我有多个按钮并且每个按钮都应该调用不同的方法,那么您需要使用 Ajax。在这种情况下,您应该在 ajax 调用中发送参数 productId,在控制器中您应该返回一个带有搜索结果的 json。 return Json(new { Response = model }, JsonRequestBehavior.AllowGet); 然后,您应该在成功函数中查找要更新的输入并设置值。例如:$("#myInput").val(data.Response)
  • 太棒了。太感谢了。接受的答案
猜你喜欢
  • 2020-08-08
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多