2017-01-07 18 views
0

私はASP.Netコアアプリケーションで作業していて、文字列内のテキストを整列したいと考えています。
どういうわけか私はこの作業を行うことができず、おそらくここで非常に明白な何かが不足している可能性があります。
Row 20 , Name is a required field
しかし:インポートファイルは、名前のフィールドに値を持っていないとき、私は私のブラウザでは、このような何かを期待して今C#文字列の形式の整列が正しく動作しません。

public class AdminController : Controller 
{ 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public async Task<IActionResult> ImportOrganizations(ICollection<IFormFile> files) 
    { 
     var count = 0; 

     var uploads = Path.Combine(_environment.WebRootPath, "uploads"); 
     foreach (var file in files) 
     { 
      if (file.Length <= 0) continue; 
      using (var reader = new StreamReader(file.OpenReadStream())) 
      { 
       var csv = new CsvReader(reader); 
       while (csv.Read()) 
       { 
        // Fields that need to be filled 
        string name; 

        try 
        { 
         name = csv.GetField<string>("Name"); 
        } 
        catch (Exception ex) 
        { 
         ModelState.AddModelError("", $"Row {csv.Row, 10}, {ex.Message}"); 
         continue; 
        } 

        // Check if name has a value 
        if (string.IsNullOrWhiteSpace(name)) 
        { 
         ModelState.AddModelError("", $"Row {csv.Row, 10}, Name is a required field"); 
         continue; 
        } 

        if (await _context.Organizations.AnyAsync(o => o.Name == name)) 
        { 
         ModelState.AddModelError("", $"Row {csv.Row, 3}, Organization {name} already exists"); 
         continue; 
        } 

        // Add the new Event 
        var or = new Organization() 
        { 
         Name = name 
        }; 

        _context.Organizations.Add(or); 
       } 

       await SaveContext(); 
      } 
     } 

     var model = new ImportViewModel("Import Organizations", nameof(ImportOrganizations), count); 
     return View("Import", model); 
    } 
} 

は、これは(簡体字)私のコードです私はこれを得続けます:
Row 20, Name is a required field

誰かが私を助けてくれますか?

+1

おそらくhttps://stackoverflow.com/questions/433493/why-do-multiple-spaces-in-an-html-file-show-up-as-single-spaces-in-the-browser – sgmoore

+0

@sgmoore 。ああ、私はそれが明らかな何かであると思った。ありがとう –

答えて

0

sgmooreのコメントのおかげで、私はそれを解決することができました。

これはhtmlの問題で、行内に複数の空白を使用することはできないようです。

0

あなたは右側のパッド値にしたい場合は、フィールド幅のために負の値を使用する必要があります。

$"Row {csv.Row, -10}, {ex.Message}" 

詳細はComposite Formattingの記事を参照してください。

関連する問題