我有一个剃刀语法的VS2012网站。我有一些div,包含文本段落。我通过以下jQuery使它们可编辑:
if (cmsAuthenticated==true) $(".cmsClass").prop('contentEditable', true);
登录用户现在可以编辑它们。编辑这些div后,用户点击提交按钮。
问题:对于每个可编辑的div,我想将以下信息集传递给服务器端代码:
我有以下razor代码块,它将编辑内容保存在适当的文件中:
@{
if (IsPost)
{
//Here I will put the code after your kind help to catch the array sent from jQuery
//Lets suppose I received the data in array named 'DivData' which have 3 columns contents,path,filename for each editable div on the page.
for(i=0; i<DivData.length; i++)
{
File.WriteAllText(Server.MapPath("~/" + DivData[i][1] + DivData[i][2]), DivData[i][0]);
//e.g. DivData[i][1] is "cms/TextFiles/"
//e.g. DivData[i][2] is "Page1_Text05.txt"
//e.g. DivData[i][1] is "Some edited content entered by the user"
}
}
}
P.S。 请注意,其他所有内容都在我的网站上运行。我已经测试了一个成功的“写作”和#39;单个文件,因为我通过隐藏的字段值将内容从jQuery传递给csharp。但是当我有x个div并且每个都有3组信息时,问题就出现了。
请帮助
答案 0 :(得分:0)
我没有你的html摘录。
但是,如果你有多个文件的记录(div数组) - 我想你会做这样的事情:
var files= []; // create array here
var divarray = $("#divID");
$.each(divarray, function (index, div) {
var jsonData = {
'Name': div.Name,
'Path': div.Path,
}
files.push(jsonData); //push values here
});
然后你可以传递一个字符串。
jsonData = JSON.stringify(files);
我在这里假设您正在使用带有AJAX调用的jQuery。
$.ajax({
url: "/mvccontroller path", //make sure the path is correct
cache: false,
type: 'POST',
data: jsonData,
success: function (response) {
...