【发布时间】:2019-01-31 13:20:58
【问题描述】:
在我的 HTML 页面中,我有一个变量,它的值需要从 MVC 项目中填充模型类中的变量。
我怎样才能用几行代码完成这个?
这是我尝试过的:
Index.cshtml:
var mana = document.getElementById("ID").value;
var MyAction = '@Url.Action("MyAction", "Home")';
$.ajax({
type: "POST",
url: MyAction,
data: { 'myVar': mana },
success: function (result) {
$('#ResultsDiv').html(result);
@{
var inventoryObj = Model.InventoryDataList.Where(x => x.ID == Int32.Parse(Model.grabTest)).Select(x => x.DAYOFWEEK);
var inventoryJson = new JavaScriptSerializer().Serialize(inventoryObj);
}
var inventoryRefined = JSON.parse('"@inventoryJson"');
var InventoryDataList = JSON.parse(htmlDecode(inventoryRefined));
console.log(InventoryDataList);
}
});
HomeController.cs:
public ActionResult MyAction(Models model, string myVar)
{
model.grabTest = myVar;
//My Action Code Here
return Json(true, JsonRequestBehavior.AllowGet);
}
模型.cs:
public string grabTest = "";
我想要完成什么?
我的 LINQ 需要一个参数 (ID) 来过滤对象列表。 这个值来自一个 JS 变量......你看我需要在哪里使用 ajax。
我的想法是使用 ajax 将 JS 变量发送到 actionresult 以将值存储在 Models.cs 中的公共变量中。
简单的想法,但我的执行很糟糕,想法?
【问题讨论】:
-
可能重复。看看这是否对您有帮助:stackoverflow.com/a/22167353/2343826
-
好的,我想我明白你的意思了,但是,这是唯一的方法吗?有没有更简单的方法?
-
查看是否有助于更改您的 ajax 数据道具以使用 JSON 字符串化
data: JSON.stringify({ myVar: mana }) -
你可以添加到你的 ajax 函数:
dataType: 'json'和contentType: 'application/json;charset=utf-8'所以它知道如何处理请求 -
@Fraze 我得到了与更改之前相同的异常,'值不能为空'
标签: javascript c# ajax asp.net-mvc