微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在MVC中将数据从视图传递到局部视图

我想从View到Partial View发送3个参数,我将部分视图打开到新的浏览器选项卡.

参数是

var Hdata = 'some value'; 
var abc = document.getElementById('mycontrol1');
var abcd = document.getElementById('mycontrol2');

这三个参数我想将它发送到部分视图.
代码就像

window.open('@Url.Action("Action","Controller")','_blank');

那么如何将数据传递给Partial视图呢?

提前致谢.

解决方法

如果只使用部分名称渲染部分:
@Html.Partial("_SomePartial")

它实际上将您的模型作为隐式参数传递,就像您调用时一样:

@Html.Partial("_SomePartial",Model)

现在,为了让你的部分实际上能够使用它,它也需要有一个已定义的模型,例如:

@model Namespace.To.Your.Model

@Html.Action("MemberProfile","Member",new { id = Model.Id })

或者,如果你正在处理一个不在你视图模型上的值(它在ViewBag中或者以某种方式在视图中生成的值),那么你可以传递一个ViewDataDictionary

@Html.Partial("_SomePartial",new ViewDataDictionary { { "id",someInteger } });

然后:

@Html.Action("MemberProfile",new { id = ViewData["id"] })

与模型一样,认情况下,Razor将隐式传递视图的ViewData部分,因此如果您在视图中有ViewBag.Id,那么您可以在部分中引用相同的内容.

请在下面找到示例代码

@{
   ViewBag.Title = "Index";
   string someValue ="abcd";
}

现在传递像这样的字符串值

<h2>Index</h2>
@Html.Partial("_MyPartial",someValue)

部分视图使用传递的数据的方式没有变化.就部分视图而言,它正在接收您可以通过@Model访问的数据.

Data received is : @Model

原文地址:https://www.jb51.cc/csharp/98711.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐