将返回值从操作结果传输到另一个视图

本文关键字:另一个 视图 传输 结果 返回值 操作 | 更新日期: 2023-09-27 18:24:44

我正在尝试在视图内的标签中显示数据,数据来自另一个视图,为此目的我就是这样做的

这是我的模型是

namespace MvcSampleApplication.Models
{
    public class products
    {
        [Required]
        [Display(Name = "Textbox1")]
        public string EnteredValue { get; set; }
    }    
    public class category
    {
        [Display(Name = "Label1")]
        public string lablvalue { get; set; }        
    }
}

这是我的控制器

namespace MvcSampleApplication.Controllers
{
    public class EnterValueController : Controller
    {           
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Valuesadd(MvcSampleApplication.Models.products model)
        {
            return View(model);            
        }
        [HttpPost]
        public ActionResult SubmitValue(MvcSampleApplication.Models.products model)
        {
            ViewData["logindata"] = model.EnteredValue;    
            return View("submittedvalues");               
        }                
        public ActionResult submittedvalues()
        {
            var model = new MvcSampleApplication.Models.category();
            string data = ViewData["logindata"] != null ? ViewData["logindata"].ToString() : "";
            model.lablvalue = data;
            return View(model);            
        }
    }
}

这是我的观点

@model MvcSampleApplication.Models.category
@{
    ViewBag.Title = "submittedvalues";
}
<h2>submittedvalues</h2>
@using (Html.BeginForm())
{
    <div>
        <fieldset>
          <legend>
              Lable value
          </legend>                
            @Html.DisplayFor(s=>s.lablvalue)         
        </fieldset>
    </div>
} 

当我按下提交按钮时,它将查看(提交值.cshtml(但不显示结果非常感谢...

将返回值从操作结果传输到另一个视图

将代码更改为,而不是使用 return View() RedirectToAction 将其重定向到另一个操作。另请注意,我使用了TempData而不是ViewData

[HttpPost]
public ActionResult SubmitValue(MvcSampleApplication.Models.products model)
{
    TempData["logindata"] = model.EnteredValue;    
    return RedirectToAction("submittedvalues");               
}                
public ActionResult submittedvalues()
{
    var model = new MvcSampleApplication.Models.category();
    string data = string.IsNullOrEmpty(TempData["logindata"]) ? string.Empty : TempData["logindata"].ToString();
    model.lablvalue = data;
    return View(model);            
}

这是因为:

return View("submittedvalues"); 

立即呈现名为"submittedvalues.cshtml"的视图

所以这段代码:

public ActionResult submittedvalues()
        {
            var model = new MvcSampleApplication.Models.category();
            string data = ViewData["logindata"] != null ? ViewData["logindata"].ToString() : "";
            model.lablvalue = data;
            return View(model);            
        }