繁体   English   中英

在单个解决方案中将Webform按钮中的值传递给MVC区域

[英]pass value from a Webform button click to a MVC Area in a single solution

我只需要针对此问题的正确方法和解决方案。 我有一个带有WebForms的Web应用程序,最近我将MVC区域添加到了相同的解决方案中。 我想要的是从WebForms传递值以在MVC区域中进行访问。 我在网络表单中有一个按钮

<asp:Button ID="Button1" runat="server" Text="Button" onclick="location.href='@Url.Action("Index", "Home")?id=' + $('#Button1').val()" />

单击Button1时,我想重定向到MVC控制器并在MVC上显示参数值。查看MVC区域:-NewSampleMVCArea / Home / Index

@{
ViewBag.Title = "Index";

}

<label>@Html.Action("GetNewParameter", "Home")</label>然后,Action方法如下所示

public ActionResult GetNewParameter(string Year)
    {
        string getId = Year;
        return View(getId);
    }

如果我想在<label></label>显示Year的值怎么办

按照WebForms的传统,您可以处理回发事件中的click

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

protected void Button1_Click(object sender, EventArgs e)
{
    Response.Redirect("NewSampleMVCArea/Home/Index");
}

根据更新,这可以做得更多:

    protected void Button1_Click(object sender, EventArgs e)
    {
        var id = Button1.ClientID;
        Response.Redirect("NewSampleMVCArea/Home/Index/" + id);
    }

HomeController将有2个动作:

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index(string id)
    {
        ViewBag.Year = id;
        return View();
    }

    public ActionResult GetNewParameter(string Year)
    {
        string getId = Year;
        dynamic model = new ExpandoObject();
        model.getId = getId;
        return PartialView(model);
    }
}

各自的观点是:

@{
    ViewBag.Title = "Index";
}

<label>@Html.Action("GetNewParameter", new { Year = ViewBag.Year })</label>

@Model.getId

通过查询字符串传递它,并使用MVC中的模型绑定器。

使用Response.Redirect("NewSampleMVCArea/Home/Index/?val="+ val.ToString()); 从您的Web窗体应用中。 然后将参数添加到您的操作中:

protected void Button1_Click(object sender, EventArgs e)
{
    var val = Button1.val(); // or whatever value you want
    Response.Redirect("NewSampleMVCArea/Home/Index/?val="+ val.ToString());
}

public ActionResult Index(string val)
{ 
    // use val here
    return View(); //returns .cshtml view
}

要在视图中显示它,请使用@ Html.DisplayFor(m => m.val),其中val是模型中的属性。 了解一些ASP.NET MVC教程,以获取有关如何将数据绑定到模型/视图模型的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM