4
MVC 웹 그리드에서 다운로드 기능을 구현하려고합니다. 다음은 데모 코드입니다. 다음은이 코드에서 컨트롤러Base64 문자열을 사용하여 MVC Webgrid에서 문제를 다운로드하십시오.
public ActionResult Index()
{
Student obj = new Student();
obj.StudentList = new List<Student>();
return View(obj);
}
[HttpPost]
public ActionResult Index(Student obj, HttpPostedFileBase file1)
{
if (file1 != null)
{
MemoryStream target = new MemoryStream();
file1.InputStream.CopyTo(target);
byte[] data = target.ToArray();
obj.ByteArray = Convert.ToBase64String(data);
}
obj.StudentList = new List<Student>();
obj.StudentList.Add(obj);
return View(obj);
}
@model Fileuploaddemo.Models.Student
@{ var grid = new WebGrid(Model.StudentList);}
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
@Html.LabelFor(model => model.Address)
@Html.EditorFor(model => model.Address)
@grid.GetHtml(
htmlAttributes: new
{
id = "gridT1",
@calss = ""
},
tableStyle: "webgrid-table",
headerStyle: "webgrid-header",
columns: grid.Columns(
grid.Column(columnName: "Name", header: "Name"),
grid.Column(columnName: "Address", header: "Address")))
, 나는 DISPL에 노력하고
모델
public class Student
{
public string Name { get; set; }
public string Address { get; set; }
public string ByteArray { get; set; }
public List<Student> StudentList { get; set; }
}
보기 파일 다운로드 옵션과 함께 MVC 웹 그리드의 학생 세부 정보.
그러나 여기에서, 나는 base64string 형식으로 파일을 다운로드하는 방법을 받고 있지 않다.
문제를 해결할 때 도와주세요.
미리 감사드립니다.
나는 이걸 시도했지만 파일을 Base64string 형식으로 저장되어 있기 때문에 actionlink에서 라우팅 값으로 전달할 수 없습니다. –
왜 안되니? 위의 예제를 통해 설명 하겠지만 정상적으로 작동합니다. 어쨌든 컨트롤러의 레코드 ID를 항상 전달할 수 있으며 컨트롤러에서 ID를 사용하여 base64 문자열을 조회하고 수행합니다. 다운로드는 정말 간단합니다. 학생 클래스에 ID 속성을 추가하고 ActionLink를 Html.ActionLink ("Download", "DownloadAction", "Student", new {id = ID}, null)로 변경하십시오. –