我正在寻找关于发布字符串[]的解决方案/建议.我的模型(程序)将目标属性(Levels)定义为字符串.我可以通过使用FormCollection来实现这一点,但是更喜欢将该字符串[]直接传递给帖子中的模型.以下是片段:
ProgramConotroller /创建
//
// POST: /Program/Create
[HttpPost]
public ActionResult Create(Program obj)
{
if(_service.CreateProgram(obj))
{
return RedirectToAction("Index");
}
// Add data to view data, remove if not necessary
AddToViewData(obj);
return View("Create", obj);
}
Run Code Online (Sandbox Code Playgroud)
查看/创建
...
<p>
<label>Program Levels</label>
<%= Html.ValidationMessageFor(model => model.Levels) %> <br />
<% foreach (Level level in (IEnumerable)ViewData["ProgramLevels"]) { %>
<input type="checkbox" name="Levels" value="<%= level.Id %>" <%= CommonExtensions.isChecked(level.Id.ToString(), Model.Levels) %> /><%= level.Name %><br />
<% } %>
</p>
...
Run Code Online (Sandbox Code Playgroud) 寻找帮助匹配正则表达式模式中的花括号.我尝试了不同的逃脱组合,并且符号匹配运气不佳.也许是因为星期五下午,我忽视了一些事情; 但是你的想法将不胜感激.代码如下:
function stringFormat(str, arr) {
for (var i = 0; i < arr.length; i++) {
var regExp = new RegExp('^\{' + i + '\}$', 'g');
str = str.replace(regExp, arr[i]);
}
return str;
}
var str = '<p>The quick {0}, brown {1}</p>';
$('#test').html(stringFormat(str, ['brown', 'fox']));
Run Code Online (Sandbox Code Playgroud)
我也开始了这个小提琴,http://jsfiddle.net/rgy3y/1/
问候在我的所有控制器上,我回收了包装模型和访问服务层的相同代码 - 我很累心将它复制/粘贴到每个控制器中:
private IProjectService _service;
public New()
{
_service = new ProjectService(new ModelValidation(this.ModelState));
}
public New(IProjectService service)
{
_service = service;
}
Run Code Online (Sandbox Code Playgroud)
在某些地方我可以把它放在我所有的控制器访问它的地方吗?
有一个问题,节流器在我正在制作的csv中产生错误的字符.字符只出现在文件的开头:
5,"GEN",555555555,,"Evan","Smith",,,,,,,,,,,,,,,,,,,,,,,,,"email@someplace.com"
5,"GEN",555555555,,"Dorathy","Smith",,,,,,,,,,,,,,,,,,,,,,,,,"email@someplace.com"
5,"GEN",555555555,,"Marvin","Smith",,,,,,,,,,,,,,,,,,,,,,,,,"email@someplace.com"
....
Run Code Online (Sandbox Code Playgroud)
看起来像编码问题.我已经尝试了不同的编码和正则表达式来清理字符串运气不好.这是预览代码(尽管它并不复杂).它也作为一个Web进程运行.
string fileName = includeEmail == false ? "attachment; filename=stuacct_batch.txt" : "attachment; filename=rentals.csv";
Context.Response.Clear();
Context.Response.AddHeader("content-disposition", fileName);
Context.Response.ContentType = includeEmail == false ? "text/plain" : "text/csv";
using (StreamWriter sw = new StreamWriter(Response.OutputStream, Encoding.UTF8))
{
string line = "";
foreach (Student s in students)
{
// ... some logic above that that's misc. to this problem
line = "5,\"GEN\"," + s.StudentNumber + ",,\"" + s.FirstName + "\",\"" + s.LastName + "\",,,,,,,,,,,,,,,,,,,,,,,,,\"" + s.Email + "\""; …Run Code Online (Sandbox Code Playgroud)