var javascript to asp.net MVC model
问题描述:
MVC的新手,试图通过FSCommand从一个视图向另一个视图传递一个变量(与其他函数一起使用)。 JavaScript的我使用:var javascript to asp.net MVC model
function p1_DoFSCommand(command, args) {
var p1Obj = InternetExplorer ? p1 : document.p1;
if (command == "nameClip") {
var FlashName = [args];
}
在HomeController的:
public ActionResult Testing(string FlashName)
{
ViewData["Message"] = FlashName;
return View();
}
在第二个观点:
Html.Encode(ViewData["message"])
很感激你的帮助。
答
这应该得到的数据操作方法:
function p1_DoFSCommand(command, args) {
var p1Obj = InternetExplorer ? p1 : document.p1;
if (command == "nameClip") {
var FlashName = [args];
// might have to replace '?' with '&'
var formData = "?FlashName=" + FlashName;
$.post('/HomeController/Testing', formData, function(res)
{
// do stuff with response
}, "json");
}
您还需要引用jQuery的这个工作。
如果你需要传递值到另一个控制器,只需更改
$.post('/HomeController/Testing', formData, function(res)
到
$.post('/OtherController/Testing', formData, function(res)
编辑:
我不知道你在想什么做,但ViewData是一个数据结构,只有在控制器和视图执行时才具有相关性。在JavaScript运行时,它处于渲染页面的上下文中,因此ViewData没有意义。如果,在你看来,你不得不
<input id='MyMessage' type='hidden' value='<%=(string)ViewData['Message'] %>' />
,
,那么你可以得到你所要寻找的
$('#MyMessage').val();
或
document.getElementById("MyMessage").value;
你也可以使用一个对象的值建立参数。 'var formData = {FlashName:FlashName};' – Ryan 2010-06-23 13:48:16
感谢您的协助,我仍然为var获得null值,是否需要更改HomeController!从 ViewData [“Message”] = FlashName; return View(); } – hncl 2010-06-23 16:34:51
@hnabih,我已经更新了回答你的问题的答案。 – DaveDev 2010-06-25 11:49:18